OpenCV(图片自由缩放及边缘裁剪)

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)
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值