我需要檢測方的大小在這樣一個網格(所有的廣場都應該是平等的): http://imgur.com/VZAimWS在網格上檢測見方大小
我能想到的許多不同的策略,找出一個正方形邊的長度是多少,但我預計可能會有一種特定的技術在提供更準確的答案方面更強大或更好。有小費嗎?我正在探索的一件事是確定每條平行線並找出線條之間的平均距離(或者中間距離)。
如果它是相關的,我打算使用MatLab或OpenCV來做到這一點。
謝謝
我需要檢測方的大小在這樣一個網格(所有的廣場都應該是平等的): http://imgur.com/VZAimWS在網格上檢測見方大小
我能想到的許多不同的策略,找出一個正方形邊的長度是多少,但我預計可能會有一種特定的技術在提供更準確的答案方面更強大或更好。有小費嗎?我正在探索的一件事是確定每條平行線並找出線條之間的平均距離(或者中間距離)。
如果它是相關的,我打算使用MatLab或OpenCV來做到這一點。
謝謝
我看你想這樣做在Matlab,但你可以從我的ImageMagick的,這是安裝在大多數Linux發行版攻擊它得到一些啓示,以及可用於OS X和Windows從here免費。
下面是我如何進行的骨頭 - 這是在終端只是一個命令 - 沒有編譯器,沒有OpenCV的,沒有Matlab的:
convert grid.jpg \
-threshold 80% -negate \
-morphology Thinning:-1 Skeleton \
\(+clone \
-background none \
-fill red -stroke red -strokewidth 2 \
-hough-lines 9x9+150 -write lines.mvg \
\) \
-composite hough.png
那個可愛的命令,做下列步驟操作:
它變薄到骨骼
拷貝整幅和在副本上執行霍夫線檢測所檢測到的線着色線在紅色
疊加層。返回到原始圖像
輸出的圖像是這樣的:
和文件lines.mvg
包含行座標上的數學是需要...
# Hough line transform: 9x9+150
viewbox 0 0 1777 1449
line 177.944,0 102.005,1449 # 191 <-- shown in yellow below
line 171.848,0 121.248,1449 # 332
line 0,118.401 1777,149.419 # 453
line 0,143 1777,143 # 181
line 0,283.426 1777,314.444 # 431
line 504.586,0 479.293,1449 # 252
line 0,454.452 1777,485.47 # 403
line 0,481 1777,481 # 164
line 0,627.479 1777,658.496 # 309
line 0,649 1777,649 # 233
line 842.637,0 817.345,1449 # 299
line 0,801.505 1777,832.523 # 558
line 0,844.525 1777,813.507 # 167
line 0,973.531 1777,1004.55 # 291
line 0,1013.55 1777,982.533 # 158
line 1180.69,0 1155.4,1449 # 495
line 0,1146.56 1777,1177.58 # 396
line 0,1182.58 1777,1151.56 # 350
line 0,1331 1777,1331 # 320
line 1510.74,0 1485.45,1449 # 539
line 0,1352.6 1777,1321.58 # 277
line 1504,0 1504,1449 # 201
我將從上面的列表中的第一行以黃色顯示圖像,以便您可以看到座標是如何工作的。
convert hough.png -stroke yellow -draw "line 177.944,0 102.005,1449" out.jpg
現在,關於數學......這將是很難準確地測量失真的圖像,因爲它是......嗯,扭曲。我會考慮2個策略。或者取頂線並求出它與最左邊線的交點,然後在其他3個角中求相同的結果,然後可以計算出圖像的兩個對角線並估計失真並將其攤平在很多可能很好的方塊上。或者你可以解決所有線的交點,並應用某種類型的聚類來消除多重定義的角點......或者更簡單一些。
讓我們來看看剛剛在垂直線...
grep -v "line 0" lines.mvg
line 177.944,0 102.005,1449 # 191
line 171.848,0 121.248,1449 # 332
line 504.586,0 479.293,1449 # 252
line 842.637,0 817.345,1449 # 299
line 1180.69,0 1155.4,1449 # 495
line 1510.74,0 1485.45,1449 # 539
line 1504,0 1504,1449 # 201
前兩個是同一條線,讓我們平均177和171給174最後兩個也是相同的線,因此,如果我們平均1510和1504,我們得到1507所以,現在的柵格間距是
330px = 504-174
338px = 842-504
338px = 1180-842
357px = 1507-1180
所以,我要爲338px ... ISH :-)
非常感謝,非常有幫助。我想我會遵循這些方針。也許計算所有的方塊,忽略異常值,然後選擇一個平均值。再次感謝! – user1803115
那麼我會嘗試是:
是的,我已經在做1-3,並且不知道剩下的最好是什麼。謝謝! – user1803115
如果你得到它的工作接受它作爲答案。否則不:) :) –
試着問這個在http:// DSP .stackexchange.com /可能會得到更多回復。 – rounak