图像处理算法设计:如何从成角度的相机获取正面图像?

时间:2018-05-24 13:17:22

标签: python c++ algorithm opencv image-processing

嗨,谢谢你注意我的问题!目前我有一个reqiurement调整输入视频流使其“正面”。

这是所需的正面图像

the desired frontal image

这是来自输入视频流的ACTUAL帧图像

input image

据我所知,所需算法应包括基本位置调整或甚至建模,并且某些图像信息将无法在新帧中找到相应的位置。但是,我自己设计这种角度去除算法相当困难,而且我没有在Github上找到任何参考。那么你能给我一些我可以转向的算法或一些线索吗?是否也可以在正面图像上“添加角度”?

非常感谢!我真的更喜欢python,虽然在这种情况下语言会遇到严重的“计算复杂性”问题。

1 个答案:

答案 0 :(得分:0)

图像必须经历所谓的单应变换,

X = (a x + b y + c) / (g x + h y + 1)
Y = (d x + e y + f) / (g x + h y + 1)

此变换会将输入流中屏幕的四个角映射到目标图像中的四个点,这四个点形成具有正确宽高比的矩形。

了解角落之间的四个对应关系,建立一个由8个未知数组成的8个方程组,可以用线性形式编写。

配备此转换后,扫描目标图像,并为每个像素找到源图像中的相应像素,并复制RGB值。

这对于低质量的变换来说已经足够了。为避免锯齿,您可以在源中的四个相邻像素之间使用双线性插值。

看看这里:https://docs.opencv.org/3.4.1/d9/dab/tutorial_homography.html

如果你想自动找到屏幕角落,这是另一个故事。