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)