1,getPerspectiveTransform 得到透视变换矩阵M
src_points = [left, bottom, left, top, right, top, right, bottom] #分别对应bbox的四个点坐标
src_points = np.array(src_points, dtype = "float32").reshape((-1,2)) #变为4*2的array
想把这个bbox变换为dst_height=224,dst_height=224 的图像,则dst_points为:
dst_corners = [0.0, dst_height, 0.0, 0.0, dst_width, 0.0, dst_width, dst_height] #对应图像的4个点坐标,四个点的坐标顺序和上面的bbox的顺序一致
dst_points = np.array(dst_corners, dtype = "float32").reshape((-1,2)) #变为4*2的array
M = cv2.getPerspectiveTransform(src_points, dst_points) #得到由src_points变换到dst_points的透视矩阵M
2,warpPerspective根据透视矩阵M变换图像
perspective = cv2.warpPerspective(image, M, (dst_width, dst_height), cv2.INTER_LINEAR)
image图像为bbox所在的原始图像,M为透视矩阵,(dst_width, dst_height)为变换后的图像大小
perspective为最终得到的(dst_width, dst_height)图像
小记录一下使用心得
本文介绍了如何在OpenCV中利用getPerspectiveTransform计算透视变换矩阵M,并通过warpPerspective将图像进行透视变换,以实现图像的尺寸调整。内容包括源点和目标点坐标定义、矩阵计算以及变换图像的步骤,适用于计算机视觉中的图像处理操作。
1327

被折叠的 条评论
为什么被折叠?



