主要代碼參考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)
然后拿去尋找矩形吧~~~找到了哦
千萬別去找顏色相近的!!!!!!