KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am currently writing an openCV program for a pair of stereo cameras. Camera calibration as well as Stereo Calibration are done. The next step is to find a feature's position in space from the 2 images I get. That's why I have to Stereo Rectify the images and make my calculations afterwards. The problem I am facing with initUndistortRectifyMap is the following: -If I pass R1 or R2 calculated by stereoRectify() to initUndistortRectifyMap() I get black images after remapping. -If I pass r (an empty matrix) to initUndistortRectifyMap() I get unrectified images after remapping. The images I get are a little distorted though. I need to pass R1, and R2, to initUndistortRectifyMap() for rectifying the 2 cameras, otherwise when passing an empty matrix the stereo heads won't be rotated into the same plane. Following is my code: stereoRectify(intrinsic[0], distCoeffs[0], intrinsic[1], distCoeffs[1], imageSize, R, T_Stereo, R1, R2, newP1, newP2, Q, CV_CALIB_ZERO_DISPARITY, -1, imageSize); if (x_Cam.GetSerial()=="4002678487") { initUndistortRectifyMap(intrinsic[0], distCoeffs[0], R1, newP1, imageSize, CV_16SC2 , mapx1, mapy1); remap(x_Image, imageRectified[0],mapx1, mapy1, INTER_LINEAR); return imageRectified[0]; } if (x_Cam.GetSerial()=="4002702131") { //flip(in, in, -1); initUndistortRectifyMap(intrinsic[1], distCoeffs[1], R2, newP2, imageSize, CV_16SC2 , mapx2, mapy2); remap(x_Image, imageRectified[1],mapx2, mapy2, INTER_LINEAR, BORDER_CONSTANT, 0); return imageRectified[1]; } I checked all the matrix values going in to stereoRectify() and they are correct. The rotation matrices R1, and R2 seem to be correct as well. I am just getting black images as output. I tried passing rubbish values into InitUndistortRectifyMap() for
Tags (comma-separated)
Save Edits
Cancel