what is the meaning of this line? BW = im2bw(GRAY, threshold);
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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
what is the meaning of this line?
BW = im2bw(GRAY, threshold);
0 commentaires
Réponses (1)
Iain
le 28 Mai 2013
That line compares your image, to a threshold, and produces an array of the same size, containing "false" where the image is less than the threshold, and "true" where it is higher than it.
If you do not recognise a function, I recommend looking it up in matlab's help rather than asking here - you'll get faster answers.
0 commentaires
Voir également
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!