Tôi đang cố gắng hiệu chỉnh camera Kinect và camera ngoài, với Emgu/OpenCV. Tôi bị kẹt và tôi thực sự đánh giá cao sự giúp đỡ nào.Chỉnh sửa máy ảnh chưa hiệu chỉnh, thông qua ma trận cơ bản
Tôi đã chọn thực hiện việc này thông qua ma trận cơ bản, tức là hình học epipolar. Nhưng kết quả không như tôi mong đợi. Hình ảnh kết quả có màu đen hoặc không có ý nghĩa gì cả. Các điểm Mapx và Mapy thường là tất cả bằng vô hạn hoặc vô hạn, hoặc tất cả bằng 0,00 và hiếm khi có giá trị thông thường.
Đây là cách tôi đã cố gắng để làm cải chính:
1.) điểm Find ảnh nhận được hai mảng của các điểm ảnh (một cho mỗi camera) từ tập hợp các hình ảnh. Tôi đã làm điều này với bàn cờ và chức năng FindChessboardCorners.
2.) Tìm ma trận cơ bản
CvInvoke.cvFindFundamentalMat(points1Matrix, points2Matrix,
_fundamentalMatrix.Ptr, CV_FM.CV_FM_RANSAC,1.0, 0.99, IntPtr.Zero);
Tôi vượt qua tất cả các điểm thu thập từ toàn bộ các hình ảnh, hoặc chỉ từ hai hình ảnh cố gắng để khắc phục?
3.) ma trận Tìm homography
CvInvoke.cvStereoRectifyUncalibrated(points11Matrix, points21Matrix,
_fundamentalMatrix.Ptr, Size, h1.Ptr, h2.Ptr, threshold);
4.) Nhận MapX và mapy
double scale = 0.02;
CvInvoke.cvInvert(_M1.Ptr, _iM.Ptr, SOLVE_METHOD.CV_LU);
CvInvoke.cvMul(_H1.Ptr, _M1.Ptr, _R1.Ptr,scale);
CvInvoke.cvMul(_iM.Ptr, _R1.Ptr, _R1.Ptr, scale);
CvInvoke.cvInvert(_M2.Ptr, _iM.Ptr, SOLVE_METHOD.CV_LU);
CvInvoke.cvMul(_H2.Ptr, _M2.Ptr, _R2.Ptr, scale);
CvInvoke.cvMul(_iM.Ptr, _R2.Ptr, _R2.Ptr, scale);
CvInvoke.cvInitUndistortRectifyMap(_M1.Ptr,_D1.Ptr, _R1.Ptr, _M1.Ptr,
mapxLeft.Ptr, mapyLeft.Ptr) ;
Tôi có một vấn đề ở đây ... kể từ khi tôi không sử dụng hiệu chuẩn hình ảnh, ma trận máy ảnh của tôi và hệ số biến dạng là gì? Làm thế nào tôi có thể lấy nó từ ma trận cơ bản hoặc ma trận homography?
5.) Remap
CvInvoke.cvRemap(src.Ptr, destRight.Ptr, mapxRight, mapyRight,
(int)INTER.CV_INTER_LINEAR, new MCvScalar(255));
Và điều này không trở lại kết quả tốt. Tôi sẽ đánh giá cao nếu có ai đó sẽ cho tôi biết tôi đang làm gì sai.
Tôi đã đặt 25 cặp hình ảnh và kích thước mẫu bàn cờ 9x6.