C++ 检查不同大小图像的相似性
我有一个视频源,可以为不同的设备(如:高清电视、PAD、智能手机等)生成许多流,每个流都必须相互检查以确定相似性。视频流每秒释放50个图像,每20毫秒一个图像 例如,让我们以ts1=1时来自stream1的img1、ts2=1时来自stream2的img2和ts=2时来自stream1的img1.1(比ts=1晚20毫秒)为例,比较结果应该如下所示: 比较(img1,img1)=1个相同的图像相同的大小 比较(img1,img2)=0.9相同图像不同大小 比较(img1,img1.1)=0.8个相同大小的不同图像 理想情况下,这应该是实时完成的,因此在20毫秒内,目标是了解流是否不同步,我已经实现了一些比较方法(没有一种方法适用于这种情况): 1) 直方图(SSE和OpenCV cuda),结果比较(img1,img2)~=比较(img1,img1.1) 2) pnsr(SSE和OCV cuda),结果比较(img1,img2)<比较(img1,img1.1) 3) ssim(SSE和OCV cuda),结果与pnsr相同 也许我得到的结果不好,因为调整插值方法C++ 检查不同大小图像的相似性,c++,opencv,C++,Opencv,我有一个视频源,可以为不同的设备(如:高清电视、PAD、智能手机等)生成许多流,每个流都必须相互检查以确定相似性。视频流每秒释放50个图像,每20毫秒一个图像 例如,让我们以ts1=1时来自stream1的img1、ts2=1时来自stream2的img2和ts=2时来自stream1的img1.1(比ts=1晚20毫秒)为例,比较结果应该如下所示: 比较(img1,img1)=1个相同的图像相同的大小 比较(img1,img2)=0.9相同图像不同大小 比较(img1,img1.1)=0.8个
有没有可能实现一种符合我要求的比较方法,有什么想法?恐怕你遇到了一个真正的问题(TM)。这不是一个微不足道的问题,让我们把它交给实习生吧 主要的挑战是你不能做一个蛮力比较。高清图像的容量为3MB或更大,您谈论的是O(N*M)比较(在时间上和跨流) 你所需要的基本上是一个指纹,它对大小调整具有鲁棒性,但随时间变化。由于你没有意识到(例如,直方图的概念是相当时间稳定的),你没有在这个问题中包含必要的信息 这不是C++问题,真的。你需要理解你的输入