我有一个类似的输入图像我指的是: Canny边缘检测后如何填补字母间隙
我想在此图像上绘制黑色像素。上面提到的解决方案是……
在答案中说明了这一点 np.all(image<100, axis=2) 用于选择R,G和B都低于100的像素,这基本上是颜色分离。就个人而言,我喜欢使用HSV颜色空间。
np.all(image<100, axis=2)
结果:
注意:如果要改进绿色字母,最好为其创建单独的掩码,并将hsv值调整为绿色。
码:
import numpy as np import cv2 # load image img = cv2.imread("img.jpg") # Convert BGR to HSV hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) # define range of black color in HSV lower_val = np.array([0,0,0]) upper_val = np.array([179,255,127]) # Threshold the HSV image to get only black colors mask = cv2.inRange(hsv, lower_val, upper_val) # invert mask to get black symbols on white background mask_inv = cv2.bitwise_not(mask) # display image cv2.imshow("Mask", mask_inv) cv2.imshow("Img", img) cv2.waitKey(0) cv2.destroyAllWindows()