MATLAB Answers

How can I do match a illumination image (1024*768) to captured image (2048*2048) by a camera?

1 view (last 30 days)
Shuai Nie
Shuai Nie on 9 Jan 2020
Commented: Selva Karna on 9 Jan 2020
I want to match the pixels of illuminaiton image with the captured image by a camera.
The issue is two images have different resolutions, also captured images have a distortion. Camera only capture the middle part of the illumination.
this is the illumination imageillumination.png
this is the captured image
camera (1).png
as an example, I would like to know the pixel (10,10) in illumination image corresponding to which pixels in captured image!
As I am new in matlab, can someone give me some tips?

Answers (1)

Selva Karna
Selva Karna on 9 Jan 2020
For matching:
Tech 1:
*Extract Harise Features
*SIFT Features
Tech 2:
*Template matching
Selva Karna
Selva Karna on 9 Jan 2020
Method 3:
boxImage = imread('stapleRemover.jpg');
title('Image of a Box');
sceneImage = imread('clutteredDesk.jpg');
title('Image of a Cluttered Scene');
boxPoints = detectSURFFeatures(boxImage);
scenePoints = detectSURFFeatures(sceneImage);
title('100 Strongest Feature Points from Box Image');
hold on;
plot(selectStrongest(boxPoints, 100));
title('300 Strongest Feature Points from Scene Image');
hold on;
plot(selectStrongest(scenePoints, 300));
[boxFeatures, boxPoints] = extractFeatures(boxImage, boxPoints);
[sceneFeatures, scenePoints] = extractFeatures(sceneImage, scenePoints);
boxPairs = matchFeatures(boxFeatures, sceneFeatures);
matchedBoxPoints = boxPoints(boxPairs(:, 1), :);
matchedScenePoints = scenePoints(boxPairs(:, 2), :);
showMatchedFeatures(boxImage, sceneImage, matchedBoxPoints, ...
matchedScenePoints, 'montage');
title('Putatively Matched Points (Including Outliers)');
[tform, inlierBoxPoints, inlierScenePoints] = ...
estimateGeometricTransform(matchedBoxPoints, matchedScenePoints, 'affine');
showMatchedFeatures(boxImage, sceneImage, inlierBoxPoints, ...
inlierScenePoints, 'montage');
title('Matched Points (Inliers Only)');
boxPolygon = [1, 1;... % top-left
size(boxImage, 2), 1;... % top-right
size(boxImage, 2), size(boxImage, 1);... % bottom-right
1, size(boxImage, 1);... % bottom-left
1, 1]; % top-left again to close the polygon
newBoxPolygon = transformPointsForward(tform, boxPolygon);
hold on;
line(newBoxPolygon(:, 1), newBoxPolygon(:, 2), 'Color', 'y');
title('Detected Box');

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!