设为首页 加入收藏

TOP

Python3+OpenCV2实现图像的几何变换
2019-05-23 14:39:13 】 浏览:74
Tags:Python3 OpenCV2 实现 图像 几何 变换

几何变换可以看成图像中物体(或像素)空间位置改变,或者说是像素的移动。


几何运算需要空间变换和灰度级差值两个步骤的算法,像素通过变换映射到新的坐标位置,新的位置可能是在几个像素之间,即不一定为整数坐标。这时就需要灰度级差值将映射的新坐标匹配到输出像素之间。最简单的插值方法是最近邻插值,就是令输出像素的灰度值等于映射最近的位置像素,该方法可能会产生锯齿。这种方法也叫零阶插值,相应比较复杂的还有一阶和高阶插值。


插值算法感觉只要了解就可以了,图像处理中比较需要理解的还是空间变换。


总结一下最近看的关于OpenCV图像几何变换的一些笔记。


这是原图:


Python3+OpenCV2实现图像的几何变换


原图


1、平移


示例很简单,就是将图像向右平移了100个像素,如图:


Python3+OpenCV2实现图像的几何变换


2、镜像


生成一个如下效果图:


Python3+OpenCV2实现图像的几何变换


3、缩放


使用resize直接进行缩放操作,同时还可以使用邻域插值法进行缩放,代码如下:


示例效果图如下:


Python3+OpenCV2实现图像的几何变换


4、旋转


旋转需要先定义一个旋转矩阵,cv2.getRotationMatrix2D(),参数1:需要旋转的中心点.参数2:需要旋转的角度.参数三:需要缩放的比例。效果如下图:


Python3+OpenCV2实现图像的几何变换


5、仿射


需要确定图像矩阵的三个点坐标,及(左上角, 左下角,右上角).定义两个矩阵,matSrc 为原图的三个点坐标,matDst为进行仿射的三个点坐标,通过cv2.getAffineTransform()形成组合矩阵.效果如下:


Python3+OpenCV2实现图像的几何变换


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python实现识别图片中的所有人脸.. 下一篇Python实现识别人脸特征并打印出来

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目