2.1 图像平移
# -*- conding = utf-8 -*-
# @Time: 2021/3/24 11:34
# @Author: tdl
# @file: test4.py
# @sortware: PyCharm
import cv2
import matplotlib.pyplot as plt
import numpy as np
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) # 将BGR改为RGB
return image
#图像移动
image=imread('1.jpg')
M=np.float32([[1,0,100],[0,1,150]])
shifted=cv2.warpAffine(image,M,(image.shape[1],image.shape[0]))
m=np.float32([[1,0,-100],[0,1,-150]])
shifted=cv2.warpAffine(image,m,(image.shape[1],image.shape[0]))
show(shifted)
2.2 图像旋转
# -*- conding = utf-8 -*-
# @Time: 2021/3/24 11:34
# @Author: tdl
# @file: test4.py
# @sortware: PyCharm
import cv2
import matplotlib.pyplot as plt
import numpy as np
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) # 将BGR改为RGB
return image
#图像移动
image=imread('1.jpg')
(h,w)=image.shape[:2]
(cX,cY)=(w/2,h/2)
# 旋转中心点 逆时针旋转角度 放大倍数
M=cv2.getRotationMatrix2D((cX,cY),90,1.0)#逆时针旋转180度,放大一倍
shifted=cv2.warpAffine(image,M,(image.shape[1],image.shape[0]))
show(shifted)
M=cv2.getRotationMatrix2D((cX,cY),-90,2.0)#逆时针旋转180度,放大两倍
shifted=cv2.warpAffine(image,M,(image.shape[1],image.shape[0]))
show(shifted)
2.3 图像形状大小变化
# -*- conding = utf-8 -*-
# @Time: 2021/3/24 17:26
# @Author: tdl
# @file: test6.py
# @sortware: PyCharm
import cv2
import matplotlib.pyplot as plt
import numpy as np
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) # 将BGR改为RGB
return image
if __name__ == '__main__':
# 修改图片大小
image=imread('2.jpg')
weith=150
height=150
image=cv2.resize(image,(weith,height))
#等比例缩放
image=imread('2.jpg')
weith=1000
height=int(image.shape[0]/image.shape[1]*weith)
image=cv2.resize(image,(weith,height))
show(image)
2.4 图像翻转
# -*- conding = utf-8 -*-
# @Time: 2021/3/24 17:37
# @Author: tdl
# @file: test7.py
# @sortware: PyCharm
from test6 import *
# 原图
image=imread('3.jpg')
show(image)
#水平翻转
image=imread('3.jpg')
image=cv2.flip(image,1)
show(image)
#垂直翻转
image=imread('3.jpg')
image=cv2.flip(image,0)
show(image)
#垂直水平翻转
image=imread('3.jpg')
image=cv2.flip(image,-1)
show(image)
2.5 图像裁剪
# -*- conding = utf-8 -*-
# @Time: 2021/3/24 17:45
# @Author: tdl
# @file: test8.py
# @sortware: PyCharm
from test6 import *
image=imread('3.jpg')
print(image.shape[1],image.shape[0])
show(image)
#裁剪
image=image[0:100,100:225]
show(image)
2.6 图像算术
2.7 按位计算
2.8 遮挡
2.9 图像通道分割合并
# -*- conding = utf-8 -*-
# @Time: 2021/3/24 18:07
# @Author: tdl
# @file: test9.py
# @sortware: PyCharm
from test6 import *
image=imread('3.jpg')
#分开
(R,G,B)=cv2.split(image)
show(image)
show(R)
show(G)
show(B)
# 融合
merged=cv2.merge([R,G,B])
show(merged)
2.10 图像金字塔