Python3+OpenCV学习笔记(二):图像几何变换及补边、裁剪

本文介绍了Python3配合OpenCV进行图像几何变换,包括缩放、平移、旋转和仿射变换。通过示例详细解析了各种变换的方法和效果,如使用cv2.resize进行缩放,cv2.warpAffine实现平移和旋转,以及如何进行仿射变换和投影变换。同时,文章也提及了图像的补边和裁剪操作。
摘要由CSDN通过智能技术生成

缩放变换

缩放变换即改变图片大小,在cv2里面我们使用函数cv2.resize(fileobj, None,(fx, fy), interpolation = format)函数。“fileobj”为图片对象;“(fx, fy)”参数类型为tuple, 可以指定大小如“(640, 480)”,也可以“fx=640,fy=480”;“interpolation”为插补项,可以选择cv2.INTER_AREA(使用象素关系重采样)、cv2.INTER_LINEAR(双线性插值)、cv2.INTER_CUBIC(立方插值)等变换方法,cv2.INTER_AREA适合缩小使用,cv2.INTER_LINEAR、cv2.INTER_CUBIC(慢)适合放大使用。我们运行下面的示例,将图片放大1.5倍,看看三种方式的具体效果:

import cv2

img1 = cv2.imread('Rachel.jpg')
img2 = cv2.imread('Rachel.jpg')
img3 = cv2.imread('Rachel.jpg')

res1 = cv2.resize(img1, None, fx=1.5, fy=1.5, interpolation=cv2.INTER_AREA)
res2 = cv2.resize(img2, None, fx=1.5, fy=1.5, interpolation=cv2.INTER_LINEAR)
res3 = cv2.resize(img3, None, fx=1.5, fy=1.5, interpolation=cv2.INTER_CUBIC)

cv2.imshow('res1', res1)
cv2.imshow('res2', res2)
cv2.imshow('res3', res3)

while True:
	if (cv2.waitKey() & 0xFF) == ord('q'):
		break
	else:
		pass
cv2.destroyAllWindows()

在res1、res2、res3三个窗口中分别利用三种变换方法进行放大。可以使用鼠标滚轮进一步放大,查看更细致的区别,这里我选择了Rachel的左眼进行放大:

根据黄色矩形框内的瞳孔亮点,我们可以明显看出三种变换方法的区别。当然,也可以将图像每个像素点的值打印出来进行查看。


平移变换

进行平移变换需要用到cv2.warpAffine(obj,matrix,(cols,rows)&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值