OpenCV图像处理技术(Python)——几何变换
发布日期:2021-06-29 04:43:47
浏览次数:4
分类:技术文章
本文共 1806 字,大约阅读时间需要 6 分钟。
©FuXianjun
几何变换是将一幅图像映射到另外一幅图像内的操作。
一、缩放
1.cv2.resize() 实现对图像的缩放,该函数的具体形式为:
dst = cv2.resize( src, dsize[, fx[, fy[, interpolation]]] )dst代表输出的目标图像,该图像的类型与src相同,其大小为dsize,或者可以通过src.size().fx.fy 计算得到src代表需要缩放的原图dsize 代表输出图像的大小fx代表水平方向的缩放比例fy代表垂直方向的缩放比例interpolation代表差值方式
差值方式如下:
INTER_NEAREST - 最邻近插值 INTER_LINEAR - 双线性插值,如果最后一个参数你不指定,默认使用这种方法 INTER_AREA -区域插值 根据当前像素点周边区域的像素实现当前像素点的采样 INTER_CUBIC - 三次样条差值 INTER_LANCZOS4 - 8x8像素邻域内的Lanczos插值 WARP_FILL_OUTLIERS-标志,填补目标图像中的所有像素我们来使用函数cv2.resize()对一个数组进行简单缩放
import cv2 import numpy as npimg = np.ones([2,4,3],dtype=np.uint8)size = img.shape[:2]rst=cv2.resize(img,size)print("img.shape=\n",img.shape)print("img=\n",img)print("rst.shape=\n",rst.shape)print("rst=\n",rst)
结果如下:
二、将图像进行几何变换,缩放、翻转、平移、旋转操作。
完整代码如下:
#导入库import cv2 import numpy as np#读取图像lena = cv2.imread("lena.jpg")row, col, channel = lena.shape#转换成灰色图像rst=cv2.cvtColor(lena,cv2.COLOR_BGR2GRAY)#缩放图像dst=cv2.resize(lena,None,fx=0.5,fy=0.5)#翻转图像fz_x=cv2.flip(lena,0)fz_y=cv2.flip(lena,1)fz_xy=cv2.flip(lena,-1)#平移图像x=100y=200M=np.float32([[1,0,x],[0,1,y]])move=cv2.warpAffine(lena,M,(row,col))#旋转图像M=cv2.getRotationMatrix2D((row/2,col/2),45,0.6)rotate=cv2.warpAffine(lena,M,(row,col))#显示图像cv2.imshow("rst",rst)cv2.imshow("dst",dst)cv2.imshow("fz_x",fz_x)cv2.imshow("fz_y",fz_y)cv2.imshow("fz_xy",fz_xy)cv2.imshow("original",lena)cv2.imshow("move",move)cv2.imshow("rotation",rotate)cv2.waitKey()cv2.destroyAllWindows()
运行结果如下:
三、将图像通过透视变换进行矫正
import cv2import numpy as np img=cv2.imread('hello.png')rows,cols,_=img.shapepts_o=np.float32([[46,177],[224,81],[80,282],[272,185]])pts_d=np.float32([[0,0],[600,0],[0,600],[600,600]])M=cv2.getPerspectiveTransform(pts_o,pts_d)dst=cv2.warpPerspective(img,M,(600,600))cv2.imshow("img",img)cv2.imshow('dst',dst)cv2.waitKey(0)cv2.destroyAllWindows()
运行结果如下:
转载地址:https://blog.csdn.net/zhanghao139/article/details/117596543 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年04月14日 22时29分42秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
实习小白的日常(4)
2021-07-02
APP页面布局参考
2021-07-02
linux 的 Socket IO 模型
2021-07-02
APP调用服务器API设计
2021-07-02
Opencv+Zbar二维码识别(标准条形码/二维码识别)
2021-07-02
zbar优化
2021-07-02
微信扫码登录验证PHP代码(不用开放平台)
2021-07-02
CH554E USB单片机 10引脚小封装低成本USB方案
2021-07-02
windows MQTT客户端
2021-07-02
LINUX下挂载(mount)查看树莓派镜像文件
2021-07-02
基于CH568芯片加密SD卡方案
2021-07-02
1元钱的超低成本单芯片USB单片机方案
2021-07-02
单片机/树莓派扩展双串口(TTL和RS485)
2021-07-02
JAVA(android)提取WIFI客流探针MAC地址源码
2021-07-02
基于CH568芯片的SATA电子盘方案
2021-07-02
linux下C语言判断网络是否连接
2021-07-02
STM32Cube_FW_F4_V1.17 F4固件包百度网盘下载
2021-07-02
猿来绘Java-35-线程的同步(生产者和消费者问题)
2021-07-02
猿来绘Java-36-解决线程安全问题
2021-07-02