How to retrieval back the color in particular area from original image?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Mei Synn Tan
el 17 de Mzo. de 2017
Editada: Mei Synn Tan
el 20 de Mzo. de 2017
13100.jpg
colorImage = imread('13100.jpg');
grayImage = rgb2gray(colorImage);
mserRegions = detectMSERFeatures(grayImage);
mserRegionsPixels = vertcat(cell2mat(mserRegions.PixelList));
mserMask = false(size(grayImage));
ind = sub2ind(size(mserMask), mserRegionsPixels(:,2), mserRegionsPixels(:,1));
mserMask(ind) = true;
figure;imshow(mserMask);
MSER mask
How to retrieve back the original color from 13100.jpg and paste into MSER mask (white area)?
0 comentarios
Respuesta aceptada
Guillaume
el 17 de Mzo. de 2017
Much simpler:
maskedimage = immultiply(colorImage, repmat(mserMask, [1, 1, size(colorImage, 3)]));
imshow(maskedimage);
Note that if you just want to see if your mask is correct
imshowpair(colorImage, mserMask, 'blend');
may be more useful.
3 comentarios
Guillaume
el 18 de Mzo. de 2017
That's because you're only setting the red plane to 255, leaving the green and blue plane.
whiteMaskedImage(repmat(~mserMask, 1, 1, 3)) = 255;
would fix this.
Más respuestas (1)
Image Analyst
el 17 de Mzo. de 2017
Try bsxfun():
% Mask the image using bsxfun() function
maskedRgbImage = bsxfun(@times, rgbImage, cast(mask, 'like', rgbImage));
1 comentario
Ver también
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!