demo图片:
平移
代码:
import numpy as np
import matplotlib.pyplot as plt
import 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 np
import matplotlib.pyplot as plt
import 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
#列子2
image1=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 np
import matplotlib.pyplot as plt
import cv2
#图像的旋转
def show(image):
plt.imshow(image)
plt.axis('off')
plt.show()
def imread(image):
image=cv2.imread(image)
#把图像的BGR转换成RGB
image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
return image
image=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 np
import matplotlib.pyplot as plt
import cv2
#图像的缩放
def show(image):
plt.imshow(image)
plt.axis('off')
plt.show()
def imread(image):
image=cv2.imread(image)
#把图像的BGR转换成RGB
image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
return image
image=imread('1.png')
width=150
hight=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 np
import matplotlib.pyplot as plt
import cv2
#图像的缩放
def show(image):
plt.imshow(image)
plt.axis('off')
plt.show()
def imread(image):
image=cv2.imread(image)
#把图像的BGR转换成RGB
image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
return image
image=imread('1.png')
width=150
hight=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 np
import matplotlib.pyplot as plt
import cv2
#图像翻转
def show(image):
plt.imshow(image)
plt.axis('off')
plt.show()
def imread(image):
image=cv2.imread(image)
#把图像的BGR转换成RGB
image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
return image
image=imread('1.png')
# #水平翻转
# image = cv2.flip(image,1)
#垂直翻转
# image = cv2.flip(image,0)
# #水平+垂直翻转
image = cv2.flip(image,-1)
show(image)
图片展示:
图像的裁剪
import numpy as np
import matplotlib.pyplot as plt
import cv2
#图像裁剪
def show(image):
plt.imshow(image)
plt.axis('off')
plt.show()
def imread(image):
image=cv2.imread(image)
#把图像的BGR转换成RGB
image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
return image
image=imread('1.png')
#图像x方向从0到200进行裁剪,图像y方向按照50:200进行裁剪
# image=image[0:200,50:200]
#图像裁剪x方向是200到最后,y方向是50到-50
image=image[200:,50:-50]
show(image)