6
A
回答
6
看來你的圖像上只有4個黑方塊,所以你必須做的是:
- 轉換圖像灰度
- 待辦事項門檻
- 查找黑色輪廓(在OpenCV中執行此操作之前,您必須反轉圖像,因爲默認情況下OpenCV會發現白色輪廓)
- 循環遍歷這些輪廓並找到boundin g矩形。
執行檢查:
A)矩形的面積越大,一些恆定(在我的解決辦法是)
B)矩形的寬度/高度爲接近1.0(在我soultion它是[0.9,1.1]範圍)
的代碼:
Mat img = imread("test.jpg"), gray;
vector<Vec4i> hierarchy;
vector<vector<Point2i> > contours;
cvtColor(img, gray, CV_BGR2GRAY);
threshold(gray, gray, 100, 255, THRESH_BINARY);
bitwise_not(gray, gray);
findContours(gray, contours, hierarchy, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE);
for(size_t i=0; i<contours.size(); i++)
{
Rect rect = boundingRect(contours[i]);
double k = (rect.height+0.0)/rect.width;
if (0.9<k && k<1.1 && rect.area()>100)
{
drawContours(img, contours, i, Scalar(0,0,255));
}
}
imshow("result", img);
waitKey();
結果:
又讀this SO discussion - 你不需要有4個平方檢測紙張。
相關問題
- 1. 邊界檢測紙張opencv
- 2. 使用OpenCV的檢測在一張紙上
- 3. 如何使用OpenCV檢測試紙?
- 4. 實時的Android使用OpenCV的紙張檢測
- 5. OpenCV的檢測紙
- 6. OpenCV標記檢測
- 7. 檢測標記用的OpenCV和Python
- 8. 如何使用Android Opencv檢測目標上的彈孔
- 9. 檢測打印機紙張的狀態
- 10. 上標UIPickerView中的「註冊標記」
- 11. 如何使用vbscript將一張紙的行復制到另一張紙上
- 12. 在紙上檢測符號
- 13. 如何使用宏/ vba將值從一張紙粘貼到另一張紙上?
- 14. 檢測註冊插件上的點擊
- 15. 如何檢測註解的標註顯示在mapview上?
- 16. 在紙上檢測黑色墨水斑點 - Opencv Android
- 17. 轉換多張紙到一張紙上
- 18. 使用ms訪問按鈕在紙張上打印記錄
- 19. Polymer2.0 - 使用的紙張圖標
- 20. 如何檢測使用的OpenCV +蟒蛇
- 21. 如何使紙張動態
- 22. 自動使用一張紙上的數據填充多張相同紙張
- 23. 如何在多張紙上運行onEdit
- 24. OpenCV - 如何檢測帶有alpha通道的標記
- 25. 如何檢測打印機中是否沒有使用Java的紙張?
- 26. 如何使用Account Kit檢測已註冊的號碼?
- 27. 檢測註冊的HttpListeners
- 28. 檢測新註冊的MBean
- 29. 檢測標註的標註
- 30. 1,000張,一張紙上的數據與另一張紙上的一張紙上的數據匹配
歡迎來到StackOverflow。你迄今爲止嘗試過哪些方法不適合你?你看過[這個問題](http://stackoverflow.com/q/11424002/62576),看看它是否有幫助?請顯示一些努力來解決這個問題(除了發佈圖片),並且這裏的某個人可能會幫忙。 – 2012-07-17 23:23:46