diff --git a/apps/specular_estimation/CMakeFiles/specular_estimation.dir/src/specular_estimation.cc.o b/apps/specular_estimation/CMakeFiles/specular_estimation.dir/src/specular_estimation.cc.o
index 0f2501ce8694deeb531b2344c21b53e7c2bdec9d..875c8f0e893f4b5d30849024a3126233a7f4c5e1 100644
Binary files a/apps/specular_estimation/CMakeFiles/specular_estimation.dir/src/specular_estimation.cc.o and b/apps/specular_estimation/CMakeFiles/specular_estimation.dir/src/specular_estimation.cc.o differ
diff --git a/apps/specular_estimation/src/Charuco.h b/apps/specular_estimation/src/Charuco.h
index a7f8016f66eca56d4154ccec3911da342191134f..59f1e683dd0025db286e1f175675de8c215361ce 100644
--- a/apps/specular_estimation/src/Charuco.h
+++ b/apps/specular_estimation/src/Charuco.h
@@ -152,8 +152,8 @@ std::vector<cv::Mat> charucoAlignment(std::vector<cv::Mat> materialImages, int n
 	int dictionaryId = 0;
 	cv::Ptr<cv::aruco::Dictionary> dictionary = cv::aruco::getPredefinedDictionary(cv::aruco::PREDEFINED_DICTIONARY_NAME(dictionaryId));
 	// Create a ChArUco board
-	int xSquares = 9;
-	int ySquares = 11;
+	int xSquares = 11;
+	int ySquares = 9;
 	int height = materialImages[0].rows;
 	int width  = materialImages[0].cols;
 	float squareSideLength = 0.04f;
@@ -228,9 +228,9 @@ std::vector<cv::Mat> charucoAlignment(std::vector<cv::Mat> materialImages, int n
 		i++;
 
 		//cv::waitKey(0);
-
-		return charucoImages;
 	}
+
+	return charucoImages;
 }
 
 std::vector<cv::Mat> charucoAlignment(std::vector<cv::Mat> materialImages, int numberOfLights, cv::Mat& perspectiveTransform, cv::Mat cameraMatrix, cv::Mat distortionCoefficients) {
@@ -241,10 +241,10 @@ std::vector<cv::Mat> charucoAlignment(std::vector<cv::Mat> materialImages, int n
 	int dictionaryId = 0;
 	cv::Ptr<cv::aruco::Dictionary> dictionary = cv::aruco::getPredefinedDictionary(cv::aruco::PREDEFINED_DICTIONARY_NAME(dictionaryId));
 	// Create a ChArUco board
-	int xSquares = 9;
-	int ySquares = 11;
+	int xSquares = 11;
+	int ySquares = 9;
 	int height = materialImages[0].rows;
-	int width  = materialImages[0].cols;
+	int width  = ((height * xSquares) / ySquares);
 	float squareSideLength = 0.04f;
 	float markerSideLength = 0.02f;
 	cv::Ptr<cv::aruco::CharucoBoard> charucoBoard = cv::aruco::CharucoBoard::create(xSquares, ySquares, squareSideLength, markerSideLength, dictionary);
@@ -322,10 +322,11 @@ std::vector<cv::Mat> charucoAlignment(std::vector<cv::Mat> materialImages, int n
 
 		i++;
 
-		//cv::waitKey(0);
-
-		return charucoImages;
+		cv::imshow("Undistorted ChArUco", undistortedCharuco);
+		cv::waitKey(0);
 	}
+
+	return charucoImages;
 }
 
 void createArucoDictionary(std::vector< cv::Mat >& arucoMarkers, int dictionaryId) {
diff --git a/apps/specular_estimation/src/specular_estimation.cc b/apps/specular_estimation/src/specular_estimation.cc
index ee61598e01c4fe45775702adb70584537fce7dfa..3849edddeff64260778025e8617c6ffd8529afa1 100644
--- a/apps/specular_estimation/src/specular_estimation.cc
+++ b/apps/specular_estimation/src/specular_estimation.cc
@@ -80,7 +80,7 @@ void specularEstimation(std::string imageName, std::string calibration, double R
 		std::cout << "Camera parameters obtained.\n";
 
 		cv::Mat perspectiveTransform;
-		materialImages = loadImages(materialPath, 4);
+		materialImages = loadImages(materialPath);
 		materialImages = charucoAlignment(materialImages, numberOfLights, perspectiveTransform, cameraMatrix, distortionCoefficients);
 		std::cout << "ChArUco alignment successful.\n";
 
diff --git a/bin/specular_estimation b/bin/specular_estimation
index d16a1e638608dbe9ec242e87cc63971fa2059349..59e26bf22540558453eb544c0410366121f2acad 100755
Binary files a/bin/specular_estimation and b/bin/specular_estimation differ