【问题标题】:How to apply binary mask to remove background from skin lesion colour image如何应用二进制蒙版从皮肤病变彩色图像中去除背景
【发布时间】:2018-03-01 19:09:53
【问题描述】:

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

    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】:

最有可能的问题是binary 是一张图像,其背景值为 0,前景值为 255。将具有 [0,255] 范围内的值的彩色图像乘以这样的掩码会导致溢出。由于输入图像是 uint8,溢出导致值为 255。因此,在蒙版为白色的任何地方,您都会得到白色。

解决办法是将图片转成双倍:

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

或真正将蒙版图像二值化:

output = (mask>0) .* original;

【讨论】:

  • 当我加载附加到帖子的二进制图像时,我得到一个逻辑图像。
猜你喜欢
  • 1970-01-01
  • 2020-04-06
  • 2015-07-09
  • 2020-09-07
  • 2020-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-15
相关资源
最近更新 更多