image-processing - 如何以编程方式检测图像的背景?

标签 image-processing image-manipulation

我需要开发一个软件,从背景为纯色(绿色,如电影中)的照片中选择一张脸。

然后我们想用另一个背景图像组合该选区,这部分对于许多库来说很容易。但我不知道如何进行选择?您能否提供一些链接或库进行调查?我可以用我选择的任何语言来完成这个项目,所以欢迎使用任何语言的示例或链接。

最佳答案

好的,您要做的就是所谓的色度键。就像你说的,它在带有蓝/绿屏的电影中使用了很多。在 Windows 上,它实际上很容易做到,因为它作为 GDI+ 的一部分内置在 Windows 中(或在 C# 上,我认为它只是称为 Graphics 类)。

我手边没有任何示例代码,但过程非常简单:

使用 GDI+,您可以创建前景图像(具有绿色背景的图像)的位图对象。然后创建一个 ImageAttributes 对象。使用 ImageAttribute 对象的 SetColorKey() 方法指定一种颜色或颜色范围以用作背景颜色。最后,在目标位图上绘制该位图对象,GDI+ 会将其绘制为背景色是透明的。

在代码中还有更多内容,但从概念上讲,这就是它的全部内容。

关于image-processing - 如何以编程方式检测图像的背景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3662580/

相关文章:

Imagemagick - 将图像大小调整为 25 像素高度和纵横比

c# - 我如何使用 C# 裁剪图像

css - 如何使用 CSS 在图像周围添加非矩形边框?

matlab - Matlab 中(高斯、拉普拉斯等)滤波器的可视化

java - 傅里叶变换在java中获取幅度值

python - 在图像中插入随机零像素

Android - 将字节 rgb_565 数组转换为 argb 或 rgb 数组

java - 使用 ImageJ 库 (Java) 增加图像对比度

c# - 在 .NET 中打开巨大的 TIF 并将部分复制到新图像

c++ - 没有图像的词袋