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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何应用二元掩模去除皮肤病变彩色图像的背景相关的知识,希望对你有一定的参考价值。

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

    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

答案

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

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

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

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

output = (mask>0) .* original;

以上是关于如何应用二元掩模去除皮肤病变彩色图像的背景的主要内容,如果未能解决你的问题,请参考以下文章

如何获得带孔的二元掩模的边界坐标?

从扫描图像中去除背景渐变

在 Swift 中设置 CoreML 模型 - 图像分类器

如何创建彩色条纹背景,动画以缓慢转动 360 度,不使用光栅图像或 js?

如何在php GD中应用旋转功能后去除黑色背景?

在winform c#中去除捕捉图像背景中的黑暗