Python视觉处理(四)HSV处理

来源:互联网 发布:js控制标签显示隐藏 编辑:程序博客网 时间:2024/06/07 13:42

很多时候,当图像中存在色彩时,我们用用RGB图像处理得不到想要的结果时,就可以把图像转化成HSV图像,再加以处理,这样处理起来获取方便了很多。当然,在特定的环境中,我们不知道HSV的范围,这个时候可以测试一下图像中想要凸显的物体的HSV的范围,再设定相应的阈值范围。

点击图像观察图像HSV值代码:

import cv2import numpy as npfrom matplotlib import pyplot as pltimage=cv2.imread('./src/q5.png')HSV=cv2.cvtColor(image,cv2.COLOR_BGR2HSV)def getpos(event,x,y,flags,param):    if event==cv2.EVENT_LBUTTONDOWN:        print(HSV[y,x])#th2=cv2.adaptiveThreshold(imagegray,255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY,11,2)cv2.imshow("imageHSV",HSV)cv2.imshow('image',image)cv2.setMouseCallback("imageHSV",getpos)cv2.waitKey(0)#print (image(10,10,10))

图像及输出的HSV值:

H:图像的色彩/色度;S:图像的饱和度;V:图像的亮度


当我们确定了图像的HSV范围时,就可以利用HSV对采集的视频做一个hsv处理:

代码:

import cv2import numpy as npcap=cv2.VideoCapture(1)#image=cv2.imread("./src/7.png")while(1):    ret,image=cap.read()    hsv=cv2.cvtColor(image,cv2.COLOR_BGR2HSV)    lower=np.array([100,60,100])    upper=np.array([120,120,180])    mask=cv2.inRange(hsv,lower,upper)    res=cv2.bitwise_and(image,image,mask=mask)    cv2.imshow('image',image)    cv2.imshow('mask',mask)    cv2.imshow('res',res)    #cv2.waitKey(0)    k=cv2.waitKey(5)&0xff    if k==27:        breakcv2.destroyAllWindows()


这是对蓝色物体的hsv处理:


原创粉丝点击