如何应用二元掩模去除皮肤病变彩色图像的背景

问题描述 投票:-1回答:1

输出的数字只显示二进制掩码图像,但我试图只获得彩色图像的前景,背景为黑色。

    original = imread('originalImage.jpg');
    binaryImage = imread('binaryImage.png');



    mask = cat(3,binaryImage, binaryImage, binaryImage);
    output = mask.*original;
    figure,imshow(output);

the binary mask The original image

matlab image-processing image-segmentation background-foreground
1个回答
0
投票

最可能的问题是binary是一个图像,背景值为0,前景值为255。通过这样的掩模将彩色图像与[0,255]范围内的值相乘会导致溢出。由于输入图像是uint8,溢出导致值为255.因此,在掩模为白色的任何地方,您都会获得白色。

解决方案是将图像转换为双倍:

output = double(mask)/255 .* double(original)/255;

或者真正将掩模图像二值化:

output = (mask>0) .* original;
© www.soinside.com 2019 - 2024. All rights reserved.