HSV颜色空间分割(python-opencv)

2019-01-07  本文已影响0人  justrightquite
import cv2 as cv
import numpy as np

定义卷积核

kernel = np.array([[1,1,1,1,1],[1,1,1,1,1],[1,1,1,1,1],
                 [1,1,1,1,1],[1,1,1,1,1]],dtype = np.uint8)/25 #高斯自定义5*5的卷积核

读取照片

frame = cv.imread("/home/zhao/001/cut/100000.jpg")

图像滤波

mask_kernel = cv.filter2D(frame,-1,kernel)

转换图像为HSV空间

hsv = cv.cvtColor(mask_kernel,cv.COLOR_BGR2HSV) 

设置H的上下限(黄色区域)

low_hsv = np.array([26,43,46],dtype = np.uint8)
upper_hsv = np.array([34,255,255],dtype = np.uint8)

生成掩模

mask = cv.inRange(hsv,low_hsv,upper_hsv)

膨胀和腐蚀

erosion = cv2.erode(mask,kernel,iterations = 1) #膨胀
dilation = cv2.dilate(img,kernel,iterations = 1) #腐蚀

开运算和闭运算

opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel) #开运算,先腐蚀再膨胀。
closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel) #闭运算,先膨胀再腐蚀。

读取结果或保存图片

cv.imshow("100001",closing)
cv.imwrite('100001.jpg',closing)
cv.waitKey(0)
上一篇 下一篇

猜你喜欢

热点阅读