- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
已经建立了一对一的匹配
在两个图像上的蓝点之间。
image2 是 image1 的扭曲版本。失真模型似乎是
眼鱼镜头畸变。问题是:
有什么方法可以计算描述此转换的转换矩阵。
实际上是一个变换蓝色的矩阵
第一张图片上的点到第二张图片上相应的蓝点?
这里的问题是我们不知道焦距(意味着图像未校准),但是我们确实有
两幅图像上大约 200 个点之间的完美匹配。
扭曲的图像:
最佳答案
我认为您尝试做的事情可以被视为失真校正问题,而无需进行经典相机校准的其余部分。
矩阵变换是线性变换,线性变换总是将直线映射为直线 ( http://en.wikipedia.org/wiki/Linear_map )。从图中可以明显看出,变换是非线性的,因此您无法用矩阵运算来描述它。
也就是说,您可以使用像 OpenCV ( http://docs.opencv.org/doc/tutorials/calib3d/camera_calibration/camera_calibration.html ) 使用的那样的镜头失真模型,并且获得系数应该不是很困难。以下是您可以在 Matlab 中执行的操作:
调用 (x, y) 原点坐标(上图)和 (xp, yp) 扭曲点坐标(下图),均移至图像中心并除以缩放因子(与x 和 y),因此它们或多或少位于 [-1, 1] 区间内。畸变模型为:
x = ( xp*(1 + k1*r^2 + k2*r^4 + k3*r^6) + 2*p1*xp*yp + p2*(r^2 + 2*xp^2));
y = ( yp*(1 + k1*r^2 + k2*r^4 + k3*r^6) + 2*p2*xp*yp + p1*(r^2 + 2*yp^2));
r = sqrt(x^2 + y^2);
global x y xp yp
function val = dist(var)
global x y xp yp
val = zeros(size(xp));
k1 = var(1);
k2 = var(2);
k3 = var(3);
p1 = var(4);
p2 = var(5);
r = sqrt(xp.*xp + yp.*yp);
temp1 = x - ( xp.*(1 + k1*r.^2 + k2*r.^4 + k3*r.^6) + 2*p1*xp.*yp + p2*(r.^2 + 2*xp.^2));
temp2 = y - ( yp.*(1 + k1*r.^2 + k2*r.^4 + k3*r.^6) + 2*p2*xp.*yp + p1*(r.^2 + 2*yp.^2));
val = sqrt(temp1.*temp1 + temp2.*temp2);
[coef, fval] = fsolve(@dist, zeros(5,1));
r = sqrt(xp.*xp + yp.*yp);
x_corr = xp.*(1 + k1*r.^2 + k2*r.^4 + k3*r.^6) + 2*p1*xp.*yp + p2*(r.^2 + 2*xp.^2);
y_corr = yp.*(1 + k1*r.^2 + k2*r.^4 + k3*r.^6) + 2*p2*xp.*yp + p1*(r.^2 + 2*yp.^2);
关于image-processing - 使用单应性描述两个图像之间的非线性变换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14405659/
我有一个标记,我想对其应用单应变换。例如,我有一张带有自己框架的图像,我想做的是围绕 X 轴旋转图像。 我可以使用 warpPerspective 但我需要那个矩阵(单应性)来进行特定的变换(例如 3
我正在 Visual Studio 2010 上使用 OpenCV 2.3.1 进行图像拼接项目。 我目前有 2 个问题。 (我的声望不超过10所以我在这个帖子里只能发2个超链接,我会在评论区再发2个
众所周知,在 OpenCV 中,我可以在 2 个图像之间进行仿射或透视变换: M - affine transformation - 通过使用 estimateRigidTransform() H -
我已经按照 python 中的 opencv 教程进行操作。我正在使用 OpenCV 3.2 和 Python 3.6.1。代码是这样写的: import cv2 import numpy as np
我有一个字段中的点列表(如 upper_goal_point/left_upper_outer_corner 等) 我知道它们在目标图像中的对应坐标 - 所以我可以计算单应性: h, status =
我在射影空间中有一组 3D 点,我想将它们转换为公制 3D 空间,以便我可以以米为单位测量距离。 为此,我需要一个 3D 到 3D 单应矩阵,它是一个具有 15 个自由度的 4x4 矩阵(因此我需要
我是一名优秀的程序员,十分优秀!