Python视觉处理(四)HSV处理

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

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

import cv2
import numpy as np
from matplotlib import pyplot as plt
image=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 cv2
import numpy as np
cap=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:
        break
cv2.destroyAllWindows()


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

Python视觉处理(四)HSV处理_第1张图片

你可能感兴趣的:(Python,OpenCV)