what is the meaning of BW = ~ BW?
10 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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
BW = ~ BW;
this line?
Akzeptierte Antwort
Walter Roberson
am 28 Mai 2013
~ is logical negation in this context. If you selected one area into BW, then ~BW is everything else that was not that area. bwthresh selects areas with grey scale above a certain level; ~BW would then be everywhere with grey scale below that level. Useful if you have black letters on a light background for example.
0 Kommentare
Weitere Antworten (1)
John Doe
am 28 Mai 2013
It gives you back the inverted binary matrix BW. That means, all 1's turns to 0's, and vice versa.
In plain text:
BW = not BW.
Suppose the binary image is represented as:
BW =
1 1 1 1
1 0 1 0
0 0 0 1
1 1 1 0
Then BW = ~ BW gives:
BW =
0 0 0 0
0 1 0 1
1 1 1 0
0 0 0 1
Hope this answers your question =)
- Robert
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!