缩放变换
缩放变换即改变图片大小,在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)&#