How to show a gray scale image with its contour in one figure?

3 views (last 30 days)
Hello, guys:
I extracted two contours of a gray scale image, shown as following. But I can't make the contours shown upon the original gray scale imageg to get only one figure, I need a help, thanks a lot! The wanted result is like the third picture.
1562415808.png
1562416539(1).png

Answers (2)

Nils Speetzen
Nils Speetzen on 6 Jul 2019
Hi,
you should be able to achieve your goal using imfuse like this:
finalimage = imfuse(grayscaleimage, contour, 'blend');
imshow(finalimage)
The blend option uses alpha blending to combine both images.
I hope this works for you.
  1 Comment
Yaoting Yue
Yaoting Yue on 7 Jul 2019
I tried this, it's not work, the colorful contours would become white. I look for other solutions, and finally I make it, this function imoverlay() works it out.
Anyway, thank you very much!

Sign in to comment.


Image Analyst
Image Analyst on 7 Jul 2019
Try imshow() to display the image, then don't call subplot() or figure(). Just call "hold on" and then call plot() to plot the lines in the overlay above the figure.
imshow(grayImage);
hold on;
plot(x1, y1, 'm-'); % Draw magenta curve over image.
plot(x2, y2, 'g-'); % Draw green curve over image.
  5 Comments
Image Analyst
Image Analyst on 9 Jul 2019
The gets the perimeter as an image, like bwboundaries() which gets the perimeters as a list of (x,y) coordinates. If you want to know how to use bwboundaries() and plot() to put up the lines in the overlay above the image, just ask.
Don't use contour as the name of your variable since it's the name of a built-in function.
Yaoting Yue
Yaoting Yue on 9 Jul 2019
Thanks a lot! Yeah, After I got the list of (x,y) coordinates by using bwboundaries(), how to use plot() to put up the lines in the overlay above the image?

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!