gpt4 book ai didi

c++ - OpenCV 图像处理

转载 作者:行者123 更新时间:2023-11-28 08:01:15 27 4
gpt4 key购买 nike

我想找出两张图片的不同之处。

场景:假设我有两张图片,一张是背景,另一张是背景前面的人,我想用这样的方式减去两张图片,得到人的位置,即该程序可以检测到人站在哪里,并将减影图像作为输出。

我设法想出的代码是从相机拍摄两张图像并重新调整它们的大小,然后将两张图像都转换为灰度。我想知道这之后该怎么办。我检查了 OpenCV 提供的减法函数,但它需要数组作为输入,所以我不知道如何进行。

我写的代码是:

cap>>frame; //gets the first image
cv::cvtColor(frame,frame,CV_RGB2GRAY); //converts it to gray scale
cv::resize(frame,frame,Size(30,30)); //re-sizes it

cap>>frame2;//gets the second image
cv::cvtColor(frame2,frame2,CV_RGB2GRAY); //converts it to gray scale
cv::resize(frame2,frame2,Size(30,30)); //re-sizes it

现在我只需要像这样使用减法函数:

cv::subtract(frame_gray,frame,frame);

还是先应用一些过滤器,然后再使用减法功能?

最佳答案

正如其他人所注意到的那样,这是一个棘手的问题:很容易想出有时会奏效的破解方法,很难想出一个在大多数情况下都能奏效且人为干预最少的解决方案。此外,如果您可以严格控制背景的 Material 和照明,则更容易做到。专业应用程序被称为“chromakeying”(尤其是在电视行业)、“蓝屏”、“抠图”或“移动 mask ”(在电影摄影中)、计算机视觉中的“背景去除”。

消光准均匀背景的开创性工作由 Petro Vlahos 完成多年前。它的基本算法的专利已经过期,所以你可以和他们一起去城里(并找到各种质量的开源实现)。不用说,IANAL,你在专利主题上的功课也是如此。

剔除更复杂的背景仍然是一个活跃的研究领域,尤其是在没有 3D 信息可用的情况下。您可能想查看 MS Research 在半年前发表的几篇研究论文(A. Criminisi 在该领域做了一些工作)。

关于c++ - OpenCV 图像处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11411309/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com