what is the meaning of BW = ~ BW?
Mostrar comentarios más antiguos
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?
1 comentario
Shaila parvin
el 28 de Mayo de 2013
Respuesta aceptada
Más respuestas (1)
John Doe
el 28 de Mayo de 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
1 comentario
Shaila parvin
el 28 de Mayo de 2013
Categorías
Más información sobre Image Thresholding en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!