matlab 桶型畸变,如何利用OpenCV改变K矩阵和畸变系数来模拟python中的桶形畸变

本文介绍了如何利用OpenCV在Matlab中模拟Python的桶形畸变。作者拥有相机的内参和畸变系数,通过获取最优新相机矩阵和初始化重映射地图,然后对原始图像进行重映射,以实现失真校正。尝试通过逆矩阵或转置K矩阵以及修改畸变系数来模拟桶形畸变,但遇到了问题,导致图像变为黑色或负的径向分辨率。
摘要由CSDN通过智能技术生成

我有相机的固有参数,以及失真系数,我知道如何计算出枪管的变形。-主要来自以下博客:

但是,现在我想添加桶形失真,就像相机本身一样。在

校正筒体变形的代码如下:import numpy as np

import cv2

from matplotlib import pyplot as plt

# Define camera matrix K

K = np.array([[1.051e+03,0,0],

[0, 1.0845e+03,0],

[964.4480,544.2625,1.]])

#Matrix was written in matlab style, hence it has to be transposed ...

K = K.transpose()

# Define distortion coefficients d

d = np.array([0.0719,-0.0833,0.0013,-6.1840e-04,0])

# Read an example image and acquire its size

img = cv2.imread("grid.png")

h, w = img.shape[:2]

# Generate new camera matrix from parameters

newcameramatrix, roi = cv2.getOptimalNewCameraMatrix(K, d, (w,h), 0)

# Generate look-up tables for remapping the camera image

mapx, mapy = cv2.ini

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值