Visboundaries usage- red outline

8 views (last 30 days)
Sang Wan Kim
Sang Wan Kim on 16 Mar 2016
Commented: Image Analyst on 3 Aug 2016
hi i wrote this code
BW = imread('picture'.png)
B = bwboundaries(BW);
figure;
imshow(BW);
hold on;
visboundaries(B)
when i run this, the figure comes out and the boundaries show up but there is a red outline on the border of the image itself. how do i get rid of this line? I have attached a picture to show which line i mean
thank you very much!

Answers (2)

Image Analyst
Image Analyst on 16 Mar 2016
bwboundaries() is meant to work on a binary image, not a gray scale one. So, because you passed it a gray scale image, it took the white part as the foreground region and visboundaries() drew the boundaries around the white regions. To fix, try this
grayImage = imread('picture'.png)
BW = grayImage < 250; % or some value that works.
  3 Comments
Image Analyst
Image Analyst on 16 Mar 2016
Again, it's outlining the white areas because white is foreground. If you don't want that, then invert BW before you call bwboundaries(). See what I did. I took the dark areas, not the bright areas.
Sang Wan Kim
Sang Wan Kim on 16 Mar 2016
ah i see!! that makes sense.... Thank you very much

Sign in to comment.


hupaa san
hupaa san on 3 Aug 2016
Hi, I run matlab example of 'activecontour' command on matlab version R2013a. but when I write 'visboundaries' command it show me this error:
Undefined function 'visboundaries' for input arguments of type 'char'.
and when I enter 'doc visboundaries' in command line window,there is no doc for 'visboundaries' in my matlab too. could u please guide me?
Thanks
  1 Comment
Image Analyst
Image Analyst on 3 Aug 2016
You can get it when you upgrade. It was introduced in R2015a. Please upgrade, or else use plot().

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!