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

조회 수: 5 (최근 30일)
Shaila parvin
Shaila parvin 2013년 5월 28일
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);

답변 (1개)

Iain
Iain 2013년 5월 28일
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.

태그

아직 태그를 입력하지 않았습니다.

Community Treasure Hunt

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

Start Hunting!

Translated by