python + opencv reshape函数

当图像为24位彩图时,使用以下方式:

size = src.shape
width = size[0]
height = size[1]
img3 = src.reshape(-1, height*0.5, 3)

当图像为8位图像时,使用以下方式:

size = src.shape
width = size[0]
height = size[1]
img3 = src.reshape(-1, height*0.5)

 

以下是使用PythonOpenCV进行相机标定的步骤和代码实现: 1.准备棋盘格图像,并确定棋盘格的大小。 2.使用cv2.findChessboardCorners()函数在棋盘格图像中检测角点。 3.使用cv2.calibrateCamera()函数计算相机的内部参数矩阵和畸变系数。 4.使用cv2.undistort()函数对图像进行去畸变处理。 ```python import numpy as np import cv2 import glob # 准备棋盘格图像 chessboard_size = (9, 6) images = glob.glob('chessboard/*.jpg') # 棋盘格角点的三维坐标 objp = np.zeros((chessboard_size[0] * chessboard_size[1], 3), np.float32) objp[:, :2] = np.mgrid[0:chessboard_size[0], 0:chessboard_size[1]].T.reshape(-1, 2) # 存储棋盘格角点的二维坐标和三维坐标 objpoints = [] imgpoints = [] for fname in images: img = cv2.imread(fname) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 检测棋盘格角点 ret, corners = cv2.findChessboardCorners(gray, chessboard_size, None) if ret == True: objpoints.append(objp) imgpoints.append(corners) # 绘制棋盘格角点 cv2.drawChessboardCorners(img, chessboard_size, corners, ret) cv2.imshow('img', img) cv2.waitKey(500) cv2.destroyAllWindows() # 相机标定 ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(objpoints, imgpoints, gray.shape[::-1], None, None) # 去畸变处理 img = cv2.imread('chessboard/test_image.jpg') h, w = img.shape[:2] newcameramtx, roi = cv2.getOptimalNewCameraMatrix(mtx, dist, (w, h), 1, (w, h)) dst = cv2.undistort(img, mtx, dist, None, newcameramtx) # 显示去畸变处理前后的图像 cv2.imshow('original', img) cv2.imshow('undistorted', dst) cv2.waitKey(0) cv2.destroyAllWindows() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LoveWeeknd

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值