-1
A
回答
1
必須使用validContours這樣你就可以在使用後findContours使用此代碼,您更改boundRect值來查找你想要
vector<vector<Point> > contours_poly(contourss.size());
vector<Rect> boundRect(contourss.size());
vector<Point2f>center(contourss.size());
vector<float>radius(contourss.size());
//Get poly contours
for (int i = 0; i < contourss.size(); i++)
{
approxPolyDP(Mat(contourss[i]), contours_poly[i], 3, true);
}
//Get only important contours, merge contours that are within another
vector<vector<Point> > validContours;
for (int i = 0; i < contours_poly.size(); i++){
Rect r = boundingRect(Mat(contours_poly[i]));
if (r.area() < 200)continue;
bool inside = false;
for (int j = 0; j < contours_poly.size(); j++){
if (j == i)continue;
Rect r2 = boundingRect(Mat(contours_poly[j]));
if (r2.area() < 200 || r2.area()<r.area())continue;
if (r.x>r2.x&&r.x + r.width<r2.x + r2.width&&
r.y>r2.y&&r.y + r.height < r2.y + r2.height){
inside = true;
}
}
if (inside)continue;
validContours.push_back(contours_poly[i]);
}
//Get bounding rects
for (int i = 0; i < validContours.size(); i++){
boundRect[i] = boundingRect(Mat(validContours[i]));
}
相關問題
- 1. 查找照片上的物體輪廓
- 2. 輪廓匹配 - 找到輪廓位移
- 3. 繪製輪廓後找到輪廓
- 4. findContours在opencv中找不到輪廓
- 5. 輪廓與Z(X,Y)
- 6. 輪廓輪廓着色器
- 7. 在ggmap上添加輪廓
- 8. OpenCV cvFindContours找到只有一個輪廓
- 9. 無法找到所有輪廓 - Opencv,python
- 10. OpenCV找到最大的輪廓?
- 11. 在opencv中尋找最大的輪廓
- 12. 從輪廓中提取最外輪廓
- 13. THREE.JS - 如何繪製光環(外部輪廓)到圓形扇區
- 14. 如何從vtkpolydata創建切片輪廓
- 15. 生成alpha圖片輪廓的算法?
- 16. 爲什麼FindContours在opencv中的功能在圖像中找到兩個輪廓而不是一個輪廓?
- 17. 在輪廓上合併足夠的點
- 18. 在圖像上搜索輪廓
- 19. 輪廓發現
- 20. 輪廓形狀
- 21. Opencv輪廓
- 22. 提取輪廓
- 23. OpenCV輪廓?
- 24. 輪廓提取
- 25. 輪廓匹配
- 26. OpenCV:如何在C++中找到輪廓內的像素
- 27. 如何在java中找到最大的輪廓opencv
- 28. 如何在opencv中找到最大的輪廓C++
- 29. 搜索輪廓是否存在於另一個輪廓
- 30. 當輪廓不存在時,Matplotlib輪廓圖失敗
感謝您與您的代碼,我可以找到確切的輪廓,我想要的區域 –
你可以改變area和boundRect的值來查找你的區域輪廓 –