python opencv2 投影变换笔记
已知四个对应点,求投影矩阵M = cv2.getPerspectiveTransform(src, target)src是四个点的list:[[121.13.][433.21.][ 58. 250.][497. 276.]]target是要把src变换到以下四个点:[[0.0.][500.0.][0. 281.][500. 281.]]M是求出来的投影矩阵,3*3:[[ 1.71880854e+0
已知四个对应点,求投影矩阵
M = cv2.getPerspectiveTransform(src, target)
src是四个点的list:
[[121. 13.]
[433. 21.]
[ 58. 250.]
[497. 276.]]
target是要把src变换到以下四个点:
[[ 0. 0.]
[500. 0.]
[ 0. 281.]
[500. 281.]]
M是求出来的投影矩阵,3*3:
[[ 1.71880854e+00 4.56898473e-01 -2.13915514e+02]
[-4.35924710e-02 1.70010637e+00 -1.68266938e+01]
[ 9.94528404e-05 1.75161072e-03 1.00000000e+00]]
已知投影矩阵,求变换后的图片
result = cv2.warpPerspective(img, M, (0, 0))
cv2.imshow('result', result)
img是原图,result是用M投影变换后得到的图像
已知投影矩阵,求变换后的对应点
points = points.reshape(1, -1, 2).astype(np.float32) # 二维变三维, 整形转float型, 一个都不能少
new_points = cv2.perspectiveTransform(points, M)
new_points = new_points.reshape(-1,2)
points是n个二维点,格式是numpy数组,shape为n*2。
一定要给他多加一维,然后转为float才行。
new_points是变换后的点,一定也要reshape回来。
参考:
大坑:perspectiveTransform
OpenCV Python cv2.perspectiveTransform

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)