how to mask a region under the boundary?

7 次查看(过去 30 天)
I have an RGB image in which I have segmented certain portions of the image using bwboundaries commands in matlab. Now i want the region under the boundary to be masked with green color. For this i want develop algorithm dynamically
& not by using imfreehand command. could any one help on this? . I have attached the rgb image with boundaries marked...

采纳的回答

Image Analyst
Image Analyst 2014-8-18
Have a loop. For each boundary that you have, call poly2mask. Then "OR" it in to a binary image that you will be building up. Then cast your image to color if necessary, then set masked areas to green. I'll give you pseudocode. See if you can figure it out.
binaryImage = false(rows, columns);
for k = 1 : length(boundaries)
thisBoundary = boundaries{k};
x = thisBoundary(:,1);
y = thisBoundary(:, 2);
thisMask = poly2mask(x, y, rows, columns);
binaryImage = binaryImage | thisMask;
end
% Extract the individual red, green, and blue color channels.
redChannel = rgbImage(:, :, 1);
greenChannel = rgbImage(:, :, 2);
blueChannel = rgbImage(:, :, 3);
redChannel(binaryImage) = 0;
greenChannel(binaryImage) = 255;
blueChannel(binaryImage) = 0;
% Recombine separate color channels into a single, true color RGB image.
rgbImage = cat(3, redChannel, greenChannel, blueChannel);
imshow(rgbImage);
  4 个评论
Image Analyst
Image Analyst 2014-8-18
Anand's Answer, and comment to that answer (which was the same) both moved here:
please provide your email id so that i will send my full code with images. Thank you for your help...
Image Analyst
Image Analyst 2014-8-18
Attach your images and code with the paper clip icon. I don't do free, private consulting via emails. The ability to share images and code is built into this Answers site.

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by