OpenCV-图像的几何变换

来源:互联网 发布:小游戏源码 编辑:程序博客网 时间:2024/05/16 04:51

缩放

import numpy as npimport cv2 as cvimg = cv.imread('sample_dog.jpg')res = cv.resize(img,None,fx=2, fy=2, interpolation = cv.INTER_CUBIC)#ORheight, width = img.shape[:2]res = cv.resize(img,(2*width, 2*height), interpolation = cv.INTER_CUBIC)cv.imshow('dog',res)

旋转

img = cv.imread('sample_dog.jpg',0)rows,cols = img.shapeM = cv.getRotationMatrix2D((cols/2,rows/2),90,1)dst = cv.warpAffine(img,M,(cols,rows))cv.imshow('dog',dst)

这里写图片描述

仿射变换

img = cv.imread('sample_dog.jpg')rows,cols,ch = img.shapepts1 = np.float32([[50,50],[200,50],[50,200]])pts2 = np.float32([[10,100],[200,50],[100,250]])M = cv.getAffineTransform(pts1,pts2)dst = cv.warpAffine(img,M,(cols,rows))plt.subplot(121),plt.imshow(img),plt.title('Input')plt.subplot(122),plt.imshow(dst),plt.title('Output')plt.show()

这里写图片描述

透射变换

img = cv.imread('sample_dog.jpg')rows,cols,ch = img.shapepts1 = np.float32([[56,65],[368,52],[28,387],[389,390]])pts2 = np.float32([[0,0],[300,0],[0,300],[300,300]])M = cv.getPerspectiveTransform(pts1,pts2)dst = cv.warpPerspective(img,M,(300,300))plt.subplot(121),plt.imshow(img),plt.title('Input')plt.subplot(122),plt.imshow(dst),plt.title('Output')plt.show()

这里写图片描述

原创粉丝点击