簡體   English   中英

OpenCv SimpleBlobDetector找不到所有斑點。 C ++,VS2015

[英]OpenCv SimpleBlobDetector does not find all blobs. C++ , VS2015

我有一個針對OpenCV SimpleBlobDetector的簡單任務

cv::SimpleBlobDetector::Params params;
cv::Ptr<cv::SimpleBlobDetector> detector = cv::SimpleBlobDetector::create(params);
std::vector<cv::KeyPoint> keypoints;
detector->detect(crop, keypoints);
drawKeypoints(crop, keypoints, crop, cv::Scalar(0, 0, 255), cv::DrawMatchesFlags::DRAW_RICH_KEYPOINTS);
cv::imshow("crop", crop);
cv::waitKey(0);

它沒有檢測到圖像中一半的斑點。 請看下面的圖片,

我嘗試添加參數並更改它們,但它從來沒有檢測到每個單個Blob。 斑點檢測是一種簡單明了的算法,應在每個圖像處理API中對其進行完善。 OpenCV不是這種情況嗎?

//params.minThreshold = 0;
//params.maxThreshold = 255;
//params.filterByArea = true;
//params.minArea = 1000;
//params.maxArea = 5000;
//params.filterByCircularity = true;
//params.minCircularity = 0.4;
//params.filterByConvexity = true;
//params.minConvexity = 0.87;
//params.filterByInertia = true;
//params.minInertiaRatio = 0.71;

斑點檢測測試圖像這里

我正在使用OpenCV 3.3或3.2,我似乎在源代碼中找不到版本號

我不確定這是否能正確回答我的問題,但是我不得不編寫自己的Blob檢測,看來OpenCV SimpleBlobDetector並不是那么簡單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM