2
A
回答
2
因此,爲了檢測白色區域,只需獲取圖像的輪廓。這是可以做到的:
vector<vector<Point>>contours;
vector<Vec4i> hierarchy;
findContours(blackWhiteImage,
contours,
hierarchy,
CV_RETR_TREE,
CV_CHAIN_APPROX_SIMPLE,
Point(0,0));
然後,您可以生成與該車型的整個輪廓,你提取近似邊框:一旦做到這一點
vector<vector<Point> > contours_poly(contours.size());
vector<Rect> boundRect(contours.size());
for(int i = 0; i < contours.size(); i++){
approxPolyDP(Mat(contours[i]),
contours_poly[i],
3,
true);
//3 is epsilon tuning param for bias-variance trade off
//true denotes contours are closed
boundRect[i] = boundingRect(Mat(contours_poly[i]));
}
,您可以訪問boundingRect對象的boundingRect數組就像你會訪問任何其他數組。
爲EmguCV(C#)不近似Simular代碼:
VectorOfVectorOfPoint contours = new VectorOfVectorOfPoint();
Mat hierarchy;
CvInvoke.FindContours(binMat, contours, hierarchy, RetrType.External, ChainApproxMethod.ChainApproxSimple);
for (int i = 0; i < contours.Size; ++i)
{
if (CvInvoke.ContourArea(contours[i]) > 8)
{
Rectangle rc = CvInvoke.BoundingRectangle(contours[i]);
CvInvoke.Rectangle(srcMat, rc, new MCvScalar(0, 0, 255));
}
}
相關問題
- 1. 載波檢測閾值
- 2. 檢測iphone區域
- 3. 注意事項檢測動態閾值
- 4. Android矩形區域檢測
- 5. iPhone - 觸摸區域檢測
- 6. Iphone檢測區域格式
- 7. Flash碰撞檢測區域
- 8. 地理區域檢測PHP
- 9. 我需要區域繪圖與閾值變化區域背景顏色
- 10. 在閾值之前對Opencv感興趣的圓形區域
- 11. 如何在圖像的特定區域應用閾值?
- 12. 如何在android中檢測開放區域的觸摸區域?
- 13. 如何設置在Matlab中檢測樹的閾值的值?
- 14. Matlab中邊緣檢測器的非閾值編碼值
- 15. 檢測區域內的電話
- 16. 檢測點擊指定區域
- 17. symfony2:僞區域設置(自動)檢測
- 18. Python - 檢測區域的元素
- 19. 檢測和操縱CKEditor區域
- 20. MGRS/USNG-檢測區域更改
- 21. 基於地理位置檢測區域
- 22. 檢測網頁中的變化區域
- 23. Javascript OnChange檢測文本區域
- 24. Aforge.Net的運動檢測區域
- 25. Xonix遊戲:檢測適當區域
- 26. 在Android中檢測滑動區域
- 27. 檢測空白區域的圖像
- 28. 如何檢測明亮區域
- 29. 帶區域學習的標記檢測
- 30. 區域學習和標記檢測
什麼是contours_poly? Mat(...) – ionmike
Mat(...)構造一個cv :: Mat的實例,以便我們可以將正確類型的參數傳遞給boundingRect構造函數。 另外,我原本不包括contours_poly的初始化。它只是一個變量,它包含您從approxPolyDP獲得的近似多邊形,以便我們可以使用它們構造矩陣以傳遞給boundingRect構造函數 – bstadt
好的。我用你的例子在C#中做了一些代碼。我想我會接受你的答案。 – ionmike