OpenCV图像处理(三)

本文介绍了使用Python进行图像处理的基本方法,包括不同色彩空间之间的转换、如何提取特定颜色的像素,以及实现图像的缩放、翻转、平移和旋转等几何变换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.图像类型转换

图像在BGR模式与RGB模式之间转换

import cv2
import numpy as np

img1 = cv2.imread("pig.jpg")
rgb = cv2.cvtColor(img1,cv2.COLOR_BGR2RGB)
cv2.imshow("BGR",img1)
cv2.imshow("RGB",rgb)
cv2.waitKey(0)
cv2.destroyAllWindows()

图像在BGR模式与GRAY模式之间转换

gray = cv2.cvtCorlor(bgr,cv2.COLOR_BGR2GRAY)
cv2.imshow("GRAY",gray)
cv2.waitKey(0)
cv2.destroyAllWindows()

图像在BGR模式与HSV模式之间转换

hsv=cvtColor(bgr,cv2.COLOR_BGR2HSV)\
cv2.imshow("HSV",hsv)
cv2.waitKey(0)
cv2.destroyAllWindows()

二.提取指定颜色

import cv2
import numpy as np

img2 = cv2.imread("pig.jpg")
cv2.imshow("SRC",img2)
hsv = cv2.cvtColor(img2,cv2.COLOR_BGR2HSV)
cv2.imshow("HSV",hsv)

lowerb_hsv = np.array([156,43,46])
upperb_hsv = np.array([180,255,255])

mask = cv2.inRange(hsv.lowerb_hsv,upperb_hsv)
cv2.imshow("MASK",mask)
cv2.waitKey(0)
cv2.destroyAllWindows()

red = cv2.bitwise_and(img2,img2,mask=mask)
cv2.imshow("RED",red)
cv2.waitKey(0)
cv2.destroyAllWindows()

三.简单的几何变换

图像缩放

import cv2
import numpy as np

img=cv2.imread("pig.jpg")
row,cols,_=img.shape

size1 = (int(row*0.9),int(cols*0.8))
img_resizel = cv2.resize(img,sizel)

img_resize2 = cv2.resize(img,None,fx=2,fy=1.5)
cv2.imshow("SRC",img)
cv2.imshow("RESIZE1",img_resize1)
cv2.imshow("RESIZE2",img_resize2)
cv2.waitKey(0)
cv2.destroyAllWindows()

 图像翻转

img_flip1 = cv2.flio(img,0)
cv2.imshow("FLIP1",img_flip1)
cv2.waitKey(0)
cv2.destroyAllWindows()

平移

rows,cols,_=img.shape
x=100
y=200
M=np.float([[1,0,x],[0,1,y]])
img_move=cv2,warpAffine(img,M,(cols,rows))
cv2.imshow("MOVE",img_move)
cv2.waitKey(0)
cv2.destroyAllWindows()

旋转

height,width,_=img.shape
M = cv2.getRotationMatrix2D((width/2,height/2),45,0.6)
img_rotate = cv2.warpAffine(img,M,(width,height))
cv2.imshow("ROTATE",img_rotate)
cv2.waitKey(0)
cv2.destroyAllWindows()

透视

img = cv2.imread('shudu.jpg')
rows,cols,_=img.shape

pts_o = np.float32([[88,177],[716,85],[]216,695],[957,551]])
pts_d = np.float32([[0,0],[600,0],[0,600],[600,600]])

M = cv2.getPerspectiveTransform(pts_o,pys_d)

dst = cv2.warPerspective(img,M,(600,600))

cv2.imshow('img',img)
cv2.imshow('det',dst)
cv2.waitKey(0)
cv2.destroyAllWindows()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值