我正在研究計算特定圖像中的圖案(條)的算法。初看起來,我覺得很簡單,但我很快意識到了複雜性。 我已經試過簡單的閾值,模板匹配(小滑動窗口),邊緣檢測... 我只有幾個像這樣的圖像。所以我認爲機器學習算法不能給出更好的結果!但我仍然需要建議。 計算圖像中的圖案
Q
計算圖像中的圖案
1
A
回答
2
我想你有足夠的數據從你的圖像。你需要從你的圖像只有酒吧裁剪。每幅圖像都會有幾十張小圖片。之後,您可以將所有圖像的大小調整爲某個預定義大小(例如24X24像素),使用HOG和SVM等描述符進行學習。對於錯誤只是使用圖像中的任何其他區域。
+0
謝謝你的回答Amitay。我對模板匹配有類似的想法。我試圖裁剪模板(基於隨機二值化後檢測到的物體的質心),並對梯度量值(HOG使用方向)進行模板匹配,並求和最大匹配。結果令人鼓舞,但仍不滿意。我會用HOG漸變方向嘗試你的想法,或許有一些例子。我認爲模板的大小會成爲自動化的一大問題,但我會盡力去嘗試。再次感謝。 –
0
這可能不適用於所有情況,但由於這些都是圓形條,您還可以嘗試使用圓檢測。 matlab(find circles)和opencv(hough circle transform)都支持這種循環變換。一個問題是你必須稍微使用參數(matlab比open cv更簡單),但幾乎任何方法都是如此。
這些方法對於較大的圖像效果更好,所以我調整了你的大小。您還需要知道要查找的圓的半徑。如果你的相機位置不變,這應該不會有太大的改變。該代碼取自我鏈接的matlab文檔頁面。它doensn't找到所有的圈子,但有些調整可能有助於
im = imread('http://i.stack.imgur.com/NRwUq.jpg');
%find circles doesn't work well on small images, I made the image
%three times larger, if you have larger images you should use those for
%better results
bim = imresize(im, 3*size(im));
%find and display circles
[centers, radii] = imfindcircles(bim,[8 20],'ObjectPolarity','bright',...
'Sensitivity',0.9);
imshow(bim);
h = viscircles(centers,radii);
number_of_bars = numel(centers)
我加入綠點到圈子探測器錯過藍X的過不正確的檢測。我手工完成了這些工作,但紅色圓圈是由matlab定位的。
相關問題
- 1. 計算圖像
- 2. 計算Div中的圖像
- 3. 計算圖像熵
- 4. 計算圖像像素
- 5. 計算圖像的DPI
- 6. 計算圖像的銳度
- 7. 圖案圖像
- 8. Python - 計算圖像的直方圖
- 9. 圖像縮略圖的座標計算
- 10. 圖案列表的計算得分
- 11. 用圖像計算UIWebView高度給出了錯誤的答案
- 12. 算法來計算圖像的代碼
- 13. 圖像處理中的並行計算?
- 14. 使用pdfbox計算pdf中的圖像
- 15. 如何計算圖像中的紋理?
- 16. 在matlab中計算圖像的log10
- 17. 計算圖像中對象的數量
- 18. 計算圖像中的對象
- 19. 計算目錄中的圖像
- 20. 計算圖像尺寸
- 21. dicom圖像:面積計算
- 22. 計算積分圖像
- 23. 計算圖像積分
- 24. Matlab - 圖像動量計算
- 25. 如何計算圖像
- 26. 用repa計算圖像直方圖
- 27. 設計圖案
- 28. 使用c計算圖像中圈數#
- 29. 提取圖像中的圖案
- 30. 檢測圖像中的圓形圖案
你是在一個特定的語言工作?這可以幫助別人給你更好的答案。我認爲MAYBE你可以嘗試某種分水嶺算法,也許可以在邊緣地圖中使用它。另一種選擇可能是將圖像轉換爲二進制文件,並使用擴張和侵蝕來分隔條形圖。 – andrew
感謝您的回答。歡迎任何語言。我認爲Matlab會很好。對於生產,Opencv可能是最好的。無論如何,這不是我現在的處理。我嘗試過不同的分割算法(分水嶺和邊緣),但仍然非常依賴於參數。形態學操作(擴張和侵蝕)更危險。一些投資回報可以永遠消失!再次感謝。 –