1.图像的扩缩裁挖
1.对图片缩放:cv2.resize
第一个参数是目标图像,第二个参数是缩放的比例
img = cv2.resize(det,(m,n))
实例代码:
import cv2
img = cv2.imread("D:\picture\p\s.jpg")
# 缩放为300x300的大小
img = cv2.resize(img,(300,300))
cv2.imshow("img",img)
cv2.waitKey()
2.对图片裁剪:
import cv2
img = cv2.imread("D:\picture\p\s.jpg")
# 裁剪为300x300像素
img = img[0:300,0:300]
cv2.imshow("img",img)
cv2.waitKey()
3.图像色调调整
色调的处理即对图片的HSV进行处理,HSV中,H指的是色调,S是饱和度,V是明暗度。H的取值是[0,180],其他两个都是[0,255]。
import cv2
img = cv2.imread("D:\picture\p\s.jpg")
# 图片由BGR色彩空间转化为HVS色彩空间
img_hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
turn_green_hvs = img_hsv.copy()
# 色调H减少30色调
# turn_green_hvs[:,:,0] = (turn_green_hvs[:,:,0]-30)%180
turn_green_hvs[:,:,0] = turn_green_hvs[:,:,0]*0.6
# 图片由HVS色彩空间转化为BGR色彩空间
turn_green_img = cv2.cvtColor(turn_green_hvs,cv2.COLOR_HSV2BGR)
cv2.imshow("test",turn_green_img)
cv2.waitKey(0)
关键代码
turn_green_hvs[:,:,0] = turn_green_hvs[:,:,0]*0.6
第一二个参数代表坐标,第三个参数代表HSV选择(0指的是色调,1指的是饱和度,2指的是明暗度)
4.图像的旋转、平移和翻转
OpenCV中图像变换主要通过仿射变换矩阵和函数warpAffine()完成
import cv2
import numpy as np
img = cv2.imread("D:\picture\p\s.jpg")
# 仿射变换,先缩小为原来的80%,后逆时针旋转90度,后左平移100像素,后下平移12像素
M_copy_img = np.array([
[0,0.8,-100],
[0.8,0,-12],
],dtype=np.float32)
# 第一个参数本图片,第二个参数仿射矩阵,第三个参数输出图像大小
img_change = cv2.warpAffine(img,M_copy_img,(300,300))
cv2.imshow("test",img_change)
cv2.waitKey(0)
5.图像的随机裁剪
import cv2
img = cv2.imread("D:\picture\p\s.jpg")
width,height,depth = img.shape
img_width_box = width*0.2
img_height_box = height*0.2
print(img_width_box)
print(img_height_box)
for _ in range(10):
start_pointX = int(random.uniform(0,img_width_box))
start_pointY = int(random.uniform(0,img_height_box))
copyImg = img[start_pointX:300,start_pointY:300]
cv2.imshow("test",copyImg)
cv2.waitKey(0)