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

1 view (last 30 days)
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);

Answers (1)

Iain
Iain on 28 May 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

No tags entered yet.

Community Treasure Hunt

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

Start Hunting!