# Find summation of white pixel of detected rectangle from a binary iamge??

11 views (last 30 days)
Rajat on 6 May 2014
Answered: Rajat on 8 May 2014 im=im2bw(im,.555);
[row,col]=size(im);
area=(row*col)*.1;
stats = regionprops(im);
imshow(im);
hold on;
density=0;
for i = 1:numel(stats)
rect = [stats(i).BoundingBox];
count = 0;
if(rect(3)*rect(4)>area)
for j= fix(rect(1)):fix(rect(3))+fix(rect(1))% for every pixel of detected rectangle
for k= fix(rect(2)):fix(rect(4))+fix(rect(2))
if((j<=row && j>0 && k<=col && k>0)&&(im(j,k)== 1)) %count white pixel
count =count +1;
end
end
end
density=count/fix(rect(3))*fix(rect(4)); %count sum of white pixel/area
disp(count);
disp(density);
textRect =i;
rectangle('Position', stats(textRect).BoundingBox, ...
'Linewidth', 1, 'EdgeColor', 'r', 'LineStyle', '--');
f = getframe(gca);
im = frame2im(f);
imwrite(im,'8_rect.tif');
end
end But i didnt get the appropriate value of the density of that detected area,it should be <1.

Kevin Claytor on 6 May 2014
You're making this too complex. It's a binary image, just sum the values of your sub-image and divide by the # elements. Pseudocode:
% BWrect = %code to extract BW sub-image
density = sum(BWrect(:))/numel(BWrect);
Also, you're missing a parenthesis:
density=count/ ( fix(rect(3))*fix(rect(4)) ); %count sum of white pixel/area

Rajat on 8 May 2014
Hi Kevin,
I modify my code as per ur suggestion,but didn't get the expected result,can u please look into the below code and suggest me what to do?It will be very helpful to me Kevin :-)
density=0;
for i = 1:numel(stats)
rect = [stats(i).BoundingBox];
if(rect(3)*rect(4)>area)
density = sum(rect(:))/numel(rect);
disp(density);
disp(rect(3)*rect(4));
textRect =i;
rectangle('Position', stats(textRect).BoundingBox, ...
'Linewidth', 1, 'EdgeColor', 'r', 'LineStyle', '--');
f = getframe(gca);
im = frame2im(f);
The result shown is : Density->349.7500 and area ->478400.
I want to find the pixel density of that detected area,as in sea or sky most of of the pixel are white.So it will be more dense than other set of image like street view or sign board.
Thank You Kevin very very much :)