Image lengthening of 'rectifyStereoImages' function application results

2 views (last 30 days)
Hi. I apply 'rectifyStereoImages' function for rectify stereo image. But results are littlebit weird.
[J1, J2] = rectifyStereoImages(I1, I2, stereoParams, 'OutputView', 'full');
I ran just this code.
I1, I2`s size : 2592x1944, but J1, J2`s size 8704x2378. It`s too long and there is no effect changing the option 'OutputView', 'full' → 'vaild' or reverse.
My stereo camera system is each camera tilts 20 degrees, -20 degrees towards the center (the optical axis draws a V shape), is it common for the output image to be longer when this function is applied?
(first row : input image, second row : output image)

Accepted Answer

Song-Hyun Ji
Song-Hyun Ji on 3 Jul 2023
Edited: Song-Hyun Ji on 3 Jul 2023
I am not sure what is your 'steroParams' but they would affect the result. Here is my test code.
ld = load('wideBaselineStereo');
leftImages = imageDatastore(fullfile(toolboxdir('vision'), 'visiondata', ...
'calibration', 'wideBaseline', 'left'));
rightImages = imageDatastore(fullfile(toolboxdir('vision'), 'visiondata', ...
'calibration', 'wideBaseline', 'right'));
[imagePoints, boardSize] = detectCheckerboardPoints(leftImages.Files, rightImages.Files);
squareSizeInMillimeters = 29;
worldPoints = generateCheckerboardPoints(boardSize, squareSizeInMillimeters);
stereoParams = estimateStereoBaseline(imagePoints, worldPoints, ...
ld.intrinsics1, ld.intrinsics2);
figure; showReprojectionErrors(stereoParams)
I1 = readimage(leftImages, 1);
I2 = readimage(rightImages, 1);
[J1,J2] = rectifyStereoImages(I1,I2,stereoParams,'OutputView','full');
imshow(J1);
  6 Comments
JONGHAK LEE
JONGHAK LEE on 5 Jul 2023
Edited: JONGHAK LEE on 5 Jul 2023
Hi, Ji. Thanks for your code and I`m pleased that it is helpful for research.
It works in my environment and for the test, I tried to proceed by replacing only input I1, I2 with another images. Even though I just replaced input images, result is similar to the result of I answered earlier, and also It seems similar to the result of 'Failed' in the example you presented.
close all;
I1 = imread('mouse3_left.jpg');
I2 = imread('mouse3_right.jpg');
A = stereoAnaglyph(I1,I2);
figure;
tiledlayout(3,2)
nexttile([1 2]);
imshow(A)
title('Red-Cyan composite view of the rectified stereo pair image')
J1 = im2gray(I1);
J2 = im2gray(I2);
disparityRange = [0 48];
disparityMap = disparityBM(J1,J2,'DisparityRange',disparityRange,'UniquenessThreshold',20);
nexttile
imshow(disparityMap,disparityRange)
title('Disparity Map BM')
colormap jet
colorbar
disparityRange = [0 48];
disparityMap = disparitySGM(J1,J2,"DisparityRange",disparityRange,"UniquenessThreshold",20);
nexttile
imshow(disparityMap,disparityRange)
title("Disparity Map SGM")
colormap jet
colorbar
%%
I2 = imread('mouse2_left.jpg'); % changed the 2nd image to left camera
I1 = imread('mouse2_right.jpg'); % changed the 1st image to right camera
J1 = im2gray(I1);
J2 = im2gray(I2);
disparityRange = [0 48];
disparityMap = disparityBM(J1,J2,'DisparityRange',disparityRange,'UniquenessThreshold',20);
nexttile
imshow(disparityMap,disparityRange)
title('Disparity Map BM Failed')
colormap jet
colorbar
disparityRange = [0 48];
disparityMap = disparitySGM(J1,J2,"DisparityRange",disparityRange,"UniquenessThreshold",20);
nexttile
imshow(disparityMap,disparityRange)
title("Disparity Map SGM Failed")
colormap jet
colorbar
Because there is daily upload limit, I hyperlinked the images what I used 'mouse images'.
Thanks for your help.
Song-Hyun Ji
Song-Hyun Ji on 7 Jul 2023
It is necessary to rectify the input images I1 and I2. Rectification ensures that corresponding points in the stereo pair image are aligned along the same rows. To rectify the input stereo pair image, you can utilize the rectifyStereoImages function. It is important to note that the reference image must remain consistent for both rectification and disparity map computation.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!