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

我尝试校准我的相机,我已经生成了校准矩阵和不失真参数


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])

http://img1.mukewang.com/6424eef30001312d06370469.jpg

以下代码不失真


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 image

x, y, w, h = roi

dst1 = dst[y:y+h, x:x+w]

cv.imwrite('calibresult.png', dst1)

display.Image(filename='calibresult.png')

生成的图像尺寸缩小为 (95, 115, 3)


有什么办法可以使具有相同大小的图像不失真(调整大小使图像失真)?

http://img1.mukewang.com/6424ef020001a28605770424.jpg

阿晨1998
浏览 105回答 1
1回答

慕雪6442864

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 generatew1,h1 = 5*w,5*hnewcameramtx, 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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python