700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > OpneCV之图像的平移 翻转 旋转 缩放 裁剪(笔记04)

OpneCV之图像的平移 翻转 旋转 缩放 裁剪(笔记04)

时间:2024-05-23 20:37:38

相关推荐

OpneCV之图像的平移 翻转 旋转 缩放 裁剪(笔记04)

demo图片:

平移

代码:

import numpy as npimport matplotlib.pyplot as pltimport cv2#图像的平移def show(image):plt.imshow(image)plt.axis('off')plt.show()def imread(image):image=cv2.imread(image)image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)return image# #列子1# image=imread('1.png')# #往右平移250像素,往下平移500像素# M=np.float32([[1,0,250],[0,1,300]])# shifted=cv2.warpAffine(image,M,(image.shape[1],image.shape[0]))# show(shifted)

代码

import numpy as npimport matplotlib.pyplot as pltimport cv2#图像的平移def show(image):plt.imshow(image)plt.axis('off')plt.show()def imread(image):image=cv2.imread(image)image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)return image#列子2image1=imread('1.png')M=np.float32([[1,0,-250],[0,1,-500]])shifted=cv2.warpAffine(image1,M,(image1.shape[1],image1.shape[0]))show(shifted)

图像的旋转放大和缩小

import numpy as npimport matplotlib.pyplot as pltimport cv2#图像的旋转def show(image):plt.imshow(image)plt.axis('off')plt.show()def imread(image):image=cv2.imread(image)#把图像的BGR转换成RGBimage=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)return imageimage=imread('1.png')(h,w)=image.shape[:2](cX,cY)=(w/2,h/2)#(cX,cY)表示旋转中心点,45逆时针旋转45度(如果是-45度,表示顺时针旋转),1.0表示缩放(1表示没有缩小,也没有放大)M = cv2.getRotationMatrix2D((cX,cY),45,1.0)image = cv2.warpAffine(image,M,(w,h))show(image)

图形效果展示:

设置图片尺寸:

import numpy as npimport matplotlib.pyplot as pltimport cv2#图像的缩放def show(image):plt.imshow(image)plt.axis('off')plt.show()def imread(image):image=cv2.imread(image)#把图像的BGR转换成RGBimage=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)return imageimage=imread('1.png')width=150hight=150#设置图片的尺寸大小image=cv2.resize(image,(width,hight))show(image)

图像5中插值方法:

#设置图片的尺寸大小

# image=cv2.resize(image,(width,hight))

#图像的5中缩放插值法

image=cv2.resize(image,(width,hight),interpolation=cv2.INTER_NEAREST)

#interpolation=cv2.INTER_NEAREST表示最近邻

#interpolation=cv2.INTER_LINEAR双线性插值法

#interpolation=cv2.INTER_AREA基于图像区域方法

#interpolation=cv2.INTER_CUBIC立方插值法

#interpolation=cv2.INTER_LANCZOS4兰索斯插值法

import numpy as npimport matplotlib.pyplot as pltimport cv2#图像的缩放def show(image):plt.imshow(image)plt.axis('off')plt.show()def imread(image):image=cv2.imread(image)#把图像的BGR转换成RGBimage=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)return imageimage=imread('1.png')width=150hight=150#设置图片的尺寸大小# image=cv2.resize(image,(width,hight))#图像的5中缩放插值法image=cv2.resize(image,(width,hight),interpolation=cv2.INTER_NEAREST)#interpolation=cv2.INTER_NEAREST表示最近邻#interpolation=cv2.INTER_LINEAR双线性插值法#interpolation=cv2.INTER_AREA基于图像区域方法#interpolation=cv2.INTER_CUBIC立方插值法#interpolation=cv2.INTER_LANCZOS4兰索斯插值法show(image)

图片的翻转

import numpy as npimport matplotlib.pyplot as pltimport cv2#图像翻转def show(image):plt.imshow(image)plt.axis('off')plt.show()def imread(image):image=cv2.imread(image)#把图像的BGR转换成RGBimage=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)return imageimage=imread('1.png')# #水平翻转# image = cv2.flip(image,1)#垂直翻转# image = cv2.flip(image,0)# #水平+垂直翻转image = cv2.flip(image,-1)show(image)

图片展示:

图像的裁剪

import numpy as npimport matplotlib.pyplot as pltimport cv2#图像裁剪def show(image):plt.imshow(image)plt.axis('off')plt.show()def imread(image):image=cv2.imread(image)#把图像的BGR转换成RGBimage=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)return imageimage=imread('1.png')#图像x方向从0到200进行裁剪,图像y方向按照50:200进行裁剪# image=image[0:200,50:200]#图像裁剪x方向是200到最后,y方向是50到-50image=image[200:,50:-50]show(image)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。