How to retrieve the RGB color information from its original image to the segmented sub-images after applying bwlabel()

1 view (last 30 days)
Hi everyone, I have an project which currently need to segmented blast cells from a microscopic image. I had done the watershed segmentation, and I had tried to use bwlabel() function to crop out the blast cells into several sub-images. However, I would like to ask about how to retrieve back the original RGB color space to the sub-images which is just a binary image. I hope someone can help me in this matter, thanks in advance.

Answers (1)

awezmm
awezmm on 28 Feb 2019
If I understand you correctly, you want overlay the masked binary back into the RGB so that single cells show up as color.
Lets say that rgb_img is the variable for your rgb image
binary_img is the variable for your masked image
overlayed = bsxfun(@times, rgb_img, cast(binary_img,class(rgb_img)))
  1 Comment
Leow Bin
Leow Bin on 28 Feb 2019
Hi Mr. Awezmm, thank you for answering my question. That's exact what I meant! However, I had found the similar solution this morning by using masked image too. I had creating crop RGB images for the masked Image, and overlay into the binary Image. The idea was getting from the articles grabcut from matworks. Anyway, thank you for your answer and below is my code:
subImage1 = imcrop(rgbImage, thisBlobsBoundingBox);
subImage = imcrop(thisBlob, thisBlobsBoundingBox); ho
maskedImage2 = subImage1;
maskedImage2(repmat(~subImage,[1 1 3])) = 0;

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!