主要代码参考https://blog.csdn.net/wzh191920/article/details/79589506
GitHub:https://github.com/yinghualuowu
我们发现有些图片根本就是胡乱定位的,原因在于预处理没有搞好而已,如果不想动预处理的代码的话,我们就换一个方法。
这是我找了很久的黄色和蓝色的大概范围
lower_blue = np.array([100, 110, 110]) upper_blue = np.array([130, 255, 255]) lower_yellow = np.array([15, 55, 55]) upper_yellow = np.array([50, 255, 255])
颜色过滤一下~
hsv = cv2.cvtColor(filename, cv2.COLOR_BGR2HSV) mask_blue = cv2.inRange(hsv, lower_blue, upper_blue) mask_yellow = cv2.inRange(hsv, lower_yellow, upper_yellow) output = cv2.bitwise_and(hsv, hsv, mask=mask_blue+mask_yellow) # 根据阈值找到对应颜色 output = cv2.cvtColor(output, cv2.COLOR_BGR2GRAY)
感觉挺好的,至少看得见一块。
我们稍微做下预处理开闭操作,把这白色区域糊成一块,哈哈哈哈,还行
Matrix = np.ones((20, 20), np.uint8) img_edge1 = cv2.morphologyEx(output, cv2.MORPH_CLOSE, Matrix) img_edge2 = cv2.morphologyEx(img_edge1, cv2.MORPH_OPEN, Matrix)
然后拿去寻找矩形吧~~~找到了哦
千万别去找颜色相近的!!!!!!