Error in the code

1 visualizzazione (ultimi 30 giorni)
chaala chibani
chaala chibani il 15 Mar 2016
Modificato: Walter Roberson il 10 Feb 2018
Hi,can you give how i can correct my error
this is my code:
boxPoints = imread('C:\images\ima1.bmp');
figure;
imshow(boxPoints);
title('Image of a Box');
sceneImage = imread('C:\images\im1.jpg');
figure;
imshow(sceneImage);
title('Image of a Cluttered Scene');
boxPoints =detectSURFFeatures(boxPoints);
scenePoints = detectSURFFeatures(sceneImage);
figure;
imshow(boxImage);
title('100 Strongest Feature Points from Box Image');
hold on;
plot(selectStrongest(boxPoints, 100));
figure;
imshow(sceneImage);
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), :);
figure;
showMatchedFeatures(boxImage, sceneImage, matchedBoxPoints, ...
matchedScenePoints, 'montage');
title('Putatively Matched Points (Including Outliers)');
[tform, inlierBoxPoints, inlierScenePoints] = ...
estimateGeometricTransform(matchedBoxPoints, matchedScenePoints, 'affine');
figure;
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);
figure;
imshow(sceneImage);
hold on;
line(newBoxPolygon(:, 1), newBoxPolygon(:, 2), 'Color', 'y');
title('Detected Box');
And this is the error:
Error in detectSURFFeatures (line 81)
checkImage(I);
Error in Untitled2 (line 1)
boxPoints = detectSURFFeatures(boxImage);
  3 Commenti
ahmed abdelbakey
ahmed abdelbakey il 1 Dic 2017
Modificato: Walter Roberson il 10 Feb 2018
boxImage = imread('C:\Users\ahmed abdel bakey\Desktop\New folder\8.jpg');
boxImage=rgb2gray(boxImage);
figure;
imshow(boxImage);
title('Image of a Box');
sceneImage = imread('C:\Users\ahmed abdel bakey\Desktop\New folder\9.jpg');
sceneImage=rgb2gray(sceneImage);
figure;
imshow(sceneImage);
title('Image of a Cluttered Scene');
boxPoints = detectSURFFeatures(boxImage);
scenePoints = detectSURFFeatures(sceneImage);
figure;
imshow(boxImage);
title('100 Strongest Feature Points from Box Image');
hold on;
plot(selectStrongest(boxPoints, 100));
figure;
imshow(sceneImage);
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), :);
figure;
showMatchedFeatures(boxImage, sceneImage, matchedBoxPoints, ...
matchedScenePoints, 'montage');
[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);
figure;
imshow(sceneImage);
hold on;
line(newBoxPolygon(:, 1), newBoxPolygon(:, 2), 'Color', 'y');
title('Detected Box');

error EstimateGeometricTransform(matchedBoxPoints,matchedScenePoints,'affine');

how can solve it

Image Analyst
Image Analyst il 2 Dic 2017
Start your own question and attach your code and images(s) with the paper clip icon.

Accedi per commentare.

Risposte (3)

Image Analyst
Image Analyst il 16 Mar 2016
boxImage is supposed to be gray scale or binary. You just read it in from a BMP image so it's probably color. Try this and see if it fixes it:
% Get the dimensions of the image.
% numberOfColorBands should be = 1.
[rows, columns, numberOfColorChannels] = size(boxImage);
if numberOfColorChannels > 1
% It's not really gray scale like we expected - it's color.
% Convert it to gray scale by taking only the green channel.
boxImage= boxImage(:, :, 2); % Take green channel.
end
  3 Commenti
Image Analyst
Image Analyst il 17 Mar 2016
Sorry, I don't have the Computer Vision System Toolbox.
Ced
Ced il 17 Mar 2016
Modificato: Ced il 17 Mar 2016
hm... it looks like your input is correct. But what kind of image are you reading? These are the accepted input classes for
extractFeatures(I, points)
as you are calling it:
% Class Support
% -------------
% The input image I can be logical, uint8, uint16, int16, single, or
% double, and it must be real and nonsparse. POINTS can be a SURFPoints,
% MSERRegions, cornerPoints, or BRISKPoints object, or int16, uint16,
% int32, uint32, single or double.
Also, which points are you using? The output of detectSURFFeatures as you are using it above should be fine, but maybe you changed something?

Accedi per commentare.


Dima Lisin
Dima Lisin il 18 Mar 2016
I am guessing that your image is M-by-N-by-3 (RGB). detectSURFFeatures only takes M-by-N grayscale images. Convert your images to grayscale using rgb2gray.

Mystery Devil
Mystery Devil il 10 Feb 2018
Can you please explain it to me what does this two lines mean?
matchedBoxPoints = boxPoints(boxPairs(:, 1), :);
matchedScenePoints = scenePoints(boxPairs(:, 2), :);
Thank you very much. It's kind of urgent.

Categorie

Scopri di più su Image Processing and Computer Vision in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by