如何应用二元掩模去除皮肤病变彩色图像的背景
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何应用二元掩模去除皮肤病变彩色图像的背景相关的知识,希望对你有一定的参考价值。
输出的数字只显示二进制掩码图像,但我试图只获得彩色图像的前景,背景为黑色。
original = imread('originalImage.jpg');
binaryImage = imread('binaryImage.png');
mask = cat(3,binaryImage, binaryImage, binaryImage);
output = mask.*original;
figure,imshow(output);
答案
最可能的问题是binary
是一个图像,背景值为0,前景值为255。通过这样的掩模将彩色图像与[0,255]范围内的值相乘会导致溢出。由于输入图像是uint8,溢出导致值为255.因此,在掩模为白色的任何地方,您都会获得白色。
解决方案是将图像转换为双倍:
output = double(mask)/255 .* double(original)/255;
或者真正将掩模图像二值化:
output = (mask>0) .* original;
以上是关于如何应用二元掩模去除皮肤病变彩色图像的背景的主要内容,如果未能解决你的问题,请参考以下文章