Image lengthening of 'rectifyStereoImages' function application results

2 ビュー (過去 30 日間)
JONGHAK LEE
JONGHAK LEE 2023 年 7 月 3 日
コメント済み: Song-Hyun Ji 2023 年 7 月 7 日
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)

採用された回答

Song-Hyun Ji
Song-Hyun Ji 2023 年 7 月 3 日
編集済み: Song-Hyun Ji 2023 年 7 月 3 日
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 件のコメント
JONGHAK LEE
JONGHAK LEE 2023 年 7 月 5 日
編集済み: JONGHAK LEE 2023 年 7 月 5 日
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 2023 年 7 月 7 日
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.

サインインしてコメントする。

その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!

Translated by