MATLAB Answers


Is there a way to get a "thicker" bwconncomp connection?

Asked by Naim
on 19 Jun 2017
Latest activity Edited by Gopichandh Danala on 20 Jun 2017
See attached image. I have a stack of similar images and I want to remove the large white spaces on the top, bottom, and left of the image.
I used the code:
CC = bwconncomp(BW)
numPixels = cellfun(@numel,CC.PixelIdxList);
[biggest,idx] = max(numPixels);
BW(CC.PixelIdxList{idx}) = 0;
but this sets almost the entire picture black. I suspect it is because there is a little touching between the whites, I want matlab to only pick up the obvious white spaces on the sides. What am i doing wrong?

  1 Comment

can you upload the original image

Sign in to comment.

1 Answer

Answer by Gopichandh Danala on 20 Jun 2017
Edited by Gopichandh Danala on 20 Jun 2017

If you are just trying to replace all the white pixels in the surroundings to 0, all the connected white valleys on the edges also get removed.
img = rgb2gray(imread('image.png'));
BW = bwlabel(img); % based on labelling algorithm the left top is '1' so backgrounf label is '1'
img(BW == 1) = 0; % replace this label pixels in image to 0
figure, imshow(img);


Sign in to comment.