Python 在OpenCV里实现仿射变换—坐标变换效果

作者:caimouse 时间:2022-06-19 15:13:40 

在现实的图像操作软件中,经常碰到的不是给出放大多少倍,而是由用户在软件的界面上选择多大的区域,或者选择几个点,那么这样情况下,怎么样来计算出变换矩阵呢?从前面知道变换矩阵是2X3的矩阵,说明有六个未知数,又有中学的代数知识知道要解决六个未知数,那么方程组至少要联立三条方程,要准备三条方程的先决条件,就是要有三组坐标。因此,只要在用户选择的区域里找到三个不同点的坐标,就可以计算出变换矩阵。如果给出三组坐标[0, 0], [200, 0], [0, 200],通过变换之后新坐标是[0, 0], [128, 0], [0, 50],那用什么函数来计算这个矩阵呢?这是要使用OpenCV里的getAffineTransform函数。

下面通过例子来演示这个功能:


#python 3.7.4,opencv4.1
#蔡军生 https://blog.csdn.net/caimouse/article/details/51749579
#
import cv2
import numpy as np
#图片的路径
imgname = "img1.jpg"
#读取图片
image = cv2.imread(imgname, cv2.IMREAD_COLOR)
#图片的高度和宽度
h,w = image.shape[:2]
#从目标坐标计算出2X3的矩阵,然后调用warpAffine执行
src = np.array([[0, 0], [200, 0], [0, 200]], np.float32)
dst = np.array([[0, 0], [128, 0], [0, 50]], np.float32)
A1 = cv2.getAffineTransform(src, dst)
d1 = cv2.warpAffine(image, A1, (w, h), borderValue = 125)
#显示操作之后的图片
cv2.imshow("d1",d1)
#显示图像
cv2.imshow("image", image)
#等待用户输入,然后删除所有窗口
cv2.waitKey(0)
cv2.destroyAllWindows()

输出结果如下:

Python 在OpenCV里实现仿射变换—坐标变换效果

使用坐标变换的方法,可以不用知道中间是否先旋转,还是先平移的操作。

总结

以上所述是小编给大家介绍的Python 在OpenCV里实现仿射变换—坐标变换效果,网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

来源:https://blog.csdn.net/caimouse/article/details/100132398

标签:python,opencv,仿射变换,坐标变换
0
投稿

猜你喜欢

  • ASP 千万级数据分页的存储过程

    2011-04-14 11:08:00
  • Django Rest framework认证组件详细用法

    2023-02-20 09:47:08
  • python matplotlib绘图实现删除重复冗余图例的操作

    2023-11-02 22:36:44
  • Windows XP操作系统下的MYSQL安装过程

    2008-11-24 12:52:00
  • 利用Python如何制作好玩的GIF动图详解

    2023-03-02 10:47:47
  • 百度百科的图片轮播代码

    2009-05-06 12:58:00
  • Utf-8和Gb2312乱码问题的终结

    2008-04-05 14:04:00
  • 浅谈Python基础—判断和循环

    2021-04-21 03:53:46
  • Django视图函数的具体使用

    2023-07-25 11:02:54
  • Flask框架各种常见装饰器示例

    2023-08-25 01:07:45
  • django上传图片并生成缩略图方法示例

    2022-08-12 01:45:53
  • ASP利用TCPIP.DNS组件实现域名IP查询

    2010-02-26 11:25:00
  • ASP内置对象Request和Response用法详解

    2007-09-14 10:35:00
  • ASP+JavaScript的完整的日历使用

    2008-10-11 12:16:00
  • 在 Python 中利用Pool 进行多处理

    2022-03-07 13:10:36
  • Centos7 安装 PHP7最新版的详细教程

    2023-10-16 21:14:12
  • python 使用装饰器并记录log的示例代码

    2022-02-17 02:15:03
  • windows上安装python3教程以及环境变量配置详解

    2023-11-11 08:09:35
  • Python中的模块和包概念介绍

    2023-06-06 09:13:53
  • python读取mat文件生成h5文件的实现

    2022-08-06 08:43:28
  • asp之家 网络编程 m.aspxhome.com