How to solve the error?
1 回表示 (過去 30 日間)
古いコメントを表示
when I run the code:
function [shape] = Classify(ImageFile)
if ndims(imread(ImageFile))>2
RGB = imread(ImageFile);
GRAY = rgb2gray(RGB);
else
GRAY=imread(ImageFile);
RGB=GRAY;
end
threshold = graythresh(GRAY);
BW = im2bw(GRAY, threshold);
%Invert the Binary Image
BW = ~ BW;
[~,L] = bwboundaries(BW, 'noholes');
STATS = regionprops(L,'all');
for i=1:length(STATS)
if norm([STATS(i).Extrema(2,1), STATS(i).Extrema(2,2)]-[STATS(i).Extrema(1,1), STATS(i).Extrema(1,2)])<5 %TR,TL
%can be triangle hexagon pentagon
if norm([STATS(i).Extrema(4,1), STATS(i).Extrema(4,2)]-[STATS(i).Extrema(3,1), STATS(i).Extrema(3,2)])<5 %RT,RB
%can be pentagon triangle
if norm([STATS(i).Extrema(4,1), STATS(i).Extrema(4,2)]-[STATS(i).Extrema(5,1), STATS(i).Extrema(5,2)])<5 %RT,RB,BR = Triangle
shape(i,1)=1; % Triangle
else
shape(i,1)=3; % Pentagon
end
else
shape(i,1) = 4; % hexagon
end
elseif (STATS(i).MajorAxisLength/STATS(i).MinorAxisLength<1.1 && STATS(i).Eccentricity <0.5 || (STATS(i).Solidity/STATS(i).Extent)==1)&(STATS(i).Area<0.1*numel(GRAY))
shape(i,1)=2; % Rectangle
else
shape(i,1)=0;
end
end
if ~isempty(find(shape==2))
disp('Rectangle found');
else
disp('No rectangle in the image')
end
return
I've the error "??? Input argument "ImageFile" is undefined.
Error in ==> Classify at 3 if ndims(imread(ImageFile))>2"
How to solve it?
0 件のコメント
採用された回答
Azzi Abdelmalek
2013 年 5 月 26 日
編集済み: Azzi Abdelmalek
2013 年 5 月 26 日
How did you run this code?
This file is a function, it should be called: in the windows Matlab command, type
shape = Classify(ImageFile)
3 件のコメント
その他の回答 (1 件)
Image Analyst
2013 年 5 月 26 日
Put this at the beginning of your function:
if nargin < 1
[baseFileName, folder] = uigetfile();
ImageFile = fullfile(folder, baseFileName);
end
2 件のコメント
Image Analyst
2013 年 5 月 26 日
Why didn't you do what I said? It would have worked. You changed it so that it won't/can't work! uigetfile() returns what you chose into two variables, so you can't hard code some variables into there - they will be filled with whatever filename the user selects.
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!