如何从模式中获取图像的内容?

时间:2016-02-22 02:18:42

标签: c# image-processing imagemagick emgucv mask

我需要获得给定图案的人的形状,该图案来自两张图片的绝对差异,然后将其转换为位图以移除所有黑色像素。如何根据这些图像获取该人的原始身体

原始图像,绝对差异图像,删除黑色像素(位图)

Original image Absolute difference output Bitmap

1 个答案:

答案 0 :(得分:1)

我不太清楚你想要做什么,但不管它是什么,我认为这是一个两步的过程,就像这样......

首先,制作黑白掩模图像。将原始图像显示为白色,将黑色显示为黑色。不确定要从哪个图像开始,但让我们选择第二个带有黑色,白色,青色和蓝色的图像。让它变成纯黑色和白色。您可以选择不同的方法,但我只会选择阈值:

convert 2.jpg -threshold 50% mask.png

enter image description here

现在,第二步。将蒙版应用为第一个彩色原始图像的不透明度/ Alpha通道:

convert 1.jpg mask.png -compose copy-opacity -composite result.png

enter image description here

由于女士的脸部缺失,你生成面具的方式存在一些问题。我猜这张脸与音调的背景太相似了。考虑看看形态“关闭洞”,沿着这些方向:

convert 2.jpg -threshold 50% mask.png
convert outline.png -morphology Close Disk:12 mask.png
convert 1.jpg mask.png -compose copy-opacity -composite result.png

enter image description here