what is the meaning of this line? BW = im2bw(GRAY, threshold);

1 Ansicht (letzte 30 Tage)
Shaila parvin
Shaila parvin am 28 Mai 2013
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);

Antworten (1)

Iain
Iain am 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.

Tags

Noch keine Tags eingegeben.

Community Treasure Hunt

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

Start Hunting!

Translated by