OpenCV - 获取视频帧内检测到的图像的法线
我有一个应用SURF(加速强健功能)的项目,以检测另一组图片或来自我的网站的实时流视频中的给定图片相机。OpenCV - 获取视频帧内检测到的图像的法线
它的工作原理类似于在这个视频中所示:
http://www.youtube.com/watch?NR=1&v=uKI9qyi1wMg&feature=fvwrel
的事情是,这架参考图片矩形是2D的,我想获得关于3D的位置。基本上这是图像的正常。
有没有基于确定矩形获取图像法线的方法?
的矩形是这样的:
Top Left = (x1, y1)
Top Right = (x2, y1)
Bottom Left = (x3, y3)
Bottom Right = (x4, y4)
有相对于在此基础上协调帧获取正常的图像的一种方式?
可以得到3D变换你的输入点集匹配您的检测长方形:
cv::Mat in = 0, 0
w, 0
0, h
cv::Mat ou = x1, y1
x2, y2
x3, y3
cv::Mat mat = cv::getAffineTransform(in, ou);
然后使用这个矩阵变换输入图像的正常:
[row, col] = mat * [0, 0, 1]
那么'(x4 y4)'呢?我不应该考虑这一点吗? – Simon 2012-07-17 14:17:03
您只需要三个点来估计仿射变换。 – 2012-07-17 14:20:50
@Simon三点实际上是... – ArtemStorozhuk 2012-07-17 14:20:52
这应在数学部分提出问题。对于一个矩形也有两个规范。 – ArtemStorozhuk 2012-07-17 13:03:38