0

我用相机捕捉我的电脑屏幕和镜子。现在我想将屏幕调整到镜子,为屏幕中的每个像素调整镜子中的一个像素,我从视频中附加一个帧。

我正在寻找代码或想法。在此处输入图像描述

我添加了一些图像示例:

在此处输入图像描述 在此处输入图像描述

在此处输入图像描述 在此处输入图像描述

4

1 回答 1

0

您正在寻找的算法是关键点检测器和匹配器。有几种算法可以完成这项工作(SURF、SIFT、ORB、FREAK 等),该过程涉及三个步骤。

  1. 特征点检测。

  2. 为模板图像和目标图像的每个关键点生成描述符。

这两个阶段的算法是 SURF、SIFT、ORB 等,有关详细信息,请参阅 opencv 特征检测部分。

  1. 匹配两幅图像中的关键点

这可以通过使用 KNN 匹配、基于 FLANN 的匹配器、BRUTEFORCE 匹配器等来完成。

这是matlab和opencv中的链接。

MatLab_SURF

Opencv_特征检测

在您的情况下,SURF 算法失败的原因:

虽然匹配两个图像是两种不同场景中的对象,但我们需要考虑以下条件:

  1. 图像之间发生了哪种转换,是仿射还是透视,还是只是平移或旋转等...

    在你的情况下,它看起来像透视变换......

  2. 图像是否具有丰富的纹理和质量。在您的情况下,图像纹理丰富但质量差或细节丢失可能是由低分辨率相机拍摄的。

在这里查看我对类似问题的回答

我的第一个建议是首先捕获质量更高的数据集。为了使关键点检测算法更容易找到好的关键点,一旦基本算法准备好,然后进行改进以使其适用于分辨率较差的数据集。

于 2012-08-12T21:40:15.947 回答