输出的数字只显示二进制掩码图像,但我试图只获得彩色图像的前景,背景为黑色。
original = imread('originalImage.jpg');
binaryImage = imread('binaryImage.png');
mask = cat(3,binaryImage, binaryImage, binaryImage);
output = mask.*original;
figure,imshow(output);
答案 0 :(得分:0)
最可能的问题是binary
是一个图像,背景值为0,前景值为255。通过这样的掩模将彩色图像与[0,255]范围内的值相乘会导致溢出。由于输入图像是uint8,溢出导致值为255.因此,在掩模为白色的任何地方,都会得到白色。
解决方案是将图像转换为双倍:
output = double(mask)/255 .* double(original)/255;
或真正二值化蒙版图像:
output = (mask>0) .* original;