Seperti kita ketahui, kita bisa menggunakan fungsi cv::getOptimalNewCameraMatrix()
dengan alpha = 1 untuk mendapatkan CameraMatrix baru. Kemudian kita menggunakan fungsi cv::undistort()
dengan CameraMatrix baru yang bisa mendapatkan gambar setelah distorsi. Namun, menurut saya gambar setelah distorsi sama besar dengan gambar aslinya dan beberapa bagian gambar setelah distorsi ditutupi dengan warna hitam. Jadi pertanyaan saya adalah :Apakah ini berarti piksel gambar asli hilang? dan apakah ada cara untuk menghindari hilangnya piksel atau mendapatkan gambar yang ukurannya lebih besar dari gambar asal dengan opencv?
cv::Mat NewKMatrixLeft = cv::getOptimalNewCameraMatrix(KMatrixLeft,DistMatrixLeft ,cv::Size(image.cols,image.rows),1);
cv::undistort(image, show_image, KMatrixLeft, DistMatrixLeft,NewKMatrixLeft);
Ukuran gambar dan show_image keduanya 640*480, namun dari sudut pandang saya, ukuran gambar setelah distorsi harus lebih besar dari 640*480 karena beberapa bagiannya tidak ada artinya. Terima kasih!