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

时间:2018-03-01 19:09:54

标签: matlab image-processing image-segmentation background-foreground

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

    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

1 个答案:

答案 0 :(得分:0)

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

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

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

或真正二值化蒙版图像:

output = (mask>0) .* original;