我的斑點檢測器沒有為我的二進制影像著色。有人可以解釋這個問題嗎?
代碼:
## mask of yellow color
mask_yellow = cv2.inRange(Img, (0, 180, 240), (20, 255, 255))
#define kernel size
kernel = np.ones((15,15), np.uint8)
# Remove unnecessary noise from mask
mask_yellow = cv2.morphologyEx(mask_yellow, cv2.MORPH_CLOSE, kernel)
mask_yellow = cv2.morphologyEx(mask_yellow, cv2.MORPH_OPEN, kernel)
#scale window size
mask_yellow_view = cv2.resize(mask_yellow, dsize)
#show yellow colors
cv2.imshow('Yellow mask', mask_yellow_view)
mask_yellow = cv2.bitwise_not(mask_yellow)
mask_yellow = cv2.cvtColor(mask_yellow, cv2.COLOR_GRAY2RGB)
params = cv2.SimpleBlobDetector_Params()
params.filterByArea = True
params.minArea = 10000
detector = cv2.SimpleBlobDetector_create(params)
keypoints = detector.detect(mask_yellow)
blank = np.zeros((20, 20))
blobs = cv2.drawKeypoints(mask_yellow, keypoints, blank, (0, 0, 255),cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
# Show keypoints
cv2.imshow("Keypoints", blobs)
uj5u.com熱心網友回復:
對我來說,你的代碼作業正常。這是我使用的簡化代碼以及我的示例輸入和輸出影像。就我而言,params.minArea門檻太高了,所以我不得不降低它。請檢查您的過濾條件是否適合您的輸入!
import cv2
img = cv2.imread("img.png")
# mask of yellow color
mask_yellow = cv2.inRange(img, (0, 180, 240), (20, 255, 255))
mask_yellow = cv2.bitwise_not(mask_yellow)
mask_yellow = cv2.cvtColor(mask_yellow, cv2.COLOR_GRAY2RGB)
params = cv2.SimpleBlobDetector_Params()
params.filterByArea = True
params.minArea = 1000
detector = cv2.SimpleBlobDetector_create(params)
keypoints = detector.detect(mask_yellow)
blobs = cv2.drawKeypoints(mask_yellow, keypoints, 0, (0, 0, 255), cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
cv2.imwrite("out.png", blobs)
輸入影像:

輸出影像:

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/489338.html
