为了账号安全,请及时绑定邮箱和手机立即绑定

校准不失真减少图像的大小

校准不失真减少图像的大小

阿晨1998 2023-03-30 10:07:14
我尝试校准我的相机,我已经生成了校准矩阵和不失真参数array([[449.23763332,   0.        , 288.9949981 ],       [  0.        , 509.88847329, 195.85872177],       [  0.        ,   0.        ,   1.        ]])array([-0.38496184,  0.21366652, -0.00107046,  0.00090068, -0.07853835])以下代码不失真file = 'snapshot_640_480_1.jpg'img = cv2.imread(file)h,  w = img.shape[:2]newcameramtx, roi = cv.getOptimalNewCameraMatrix(mtx, dist, (w,h), 1, (w,h))mapx, mapy = cv.initUndistortRectifyMap(mtx, dist, None, newcameramtx, (w,h), 5)dst = cv.remap(img, mapx, mapy, cv.INTER_LINEAR)# crop the imagex, y, w, h = roidst1 = dst[y:y+h, x:x+w]cv.imwrite('calibresult.png', dst1)display.Image(filename='calibresult.png')生成的图像尺寸缩小为 (95, 115, 3)有什么办法可以使具有相同大小的图像不失真(调整大小使图像失真)?
查看完整描述

1 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

cv.getOptimalNewCameraMatrix允许通过提及输入图像大小 (w,h) 和预期图像大小 (w1,h1) 来更改生成的无失真图像大小,方法是更改预期图像大小

通过改变预期的图像大小,我们将获得参考答案

file = r'snapshot_640_480_1.jpg'

img = cv2.imread(file)

h,  w = img.shape[:2]

# New Image shape to generate

w1,h1 = 5*w,5*h

newcameramtx, roi = cv.getOptimalNewCameraMatrix(mtx, dist, (w,h), 1, (w1,h1))


mapx, mapy = cv.initUndistortRectifyMap(mtx, dist, None, newcameramtx, (w1,h1), 5)

dst = cv.remap(img, mapx, mapy, cv.INTER_LINEAR)


查看完整回答
反对 回复 2023-03-30
  • 1 回答
  • 0 关注
  • 104 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信