penso che è possibile individuare la forma abbastanza preciso con una semplice soglia, in questo modo:
convert image.jpg -threshold 90% result.jpg
e si può poi fare un rilevamento dei bordi Canny in questo modo:
convert image.jpg -threshold 90% -canny 0x1+10%+30% result.jpg
Il prossimo cose che sarebbe guardando sono, utilizzando la funzione -trim
per trovare le coordinate riquadro di rifilo, in questo modo:
convert result.jpg -format "%@" info:
320x248+152+40
ho segnato che in data in rosso sotto.
Se si vuole realmente fare il trim, utilizzare questo:
convert result.jpg -trim result.jpg
E inoltre, l'angolo di raddrizzamento
rilevamento linea
convert result.jpg -deskew 40 -format "%[deskew:angle]" info:
-0.111906
A Hough potrebbe anche essere efficace per te in questo modo:
convert image.jpg -threshold 90% -canny 0x1+10%+30% \
\(+clone -background none \
-fill red -stroke red -strokewidth 2 \
-hough-lines 5x5+80 -write lines.mvg \
\) -composite hough.png
e il file lines.mvg
contiene le 4 linee siete alla ricerca di
# Hough line transform: 5x5+80
viewbox 0 0 640 360
line 449.259,0 474.432,360 # 90
line 0,72.5604 640,27.8072 # 143
line 0,293.098 640,248.344 # 187
line 153.538,0 178.712,360 # 153
Essere un po 'pigro, non mi sono sentito come risolvere per le intersezioni di queste linee, così ho pensato di lasciare che anche ImageMagick lo facesse, usando Morphology per cercare Line Junctions in questo modo:
convert image.jpg -threshold 90% -canny 0x1+10%+30% \
\(+clone -background none -fill red -stroke red -hough-lines 5x5+80 \) \
-composite -fuzz 50% -fill black -opaque white \
-morphology HMT LineJunctions hough.png
Prova 'convertire image.jpg -threshold 90% result.jpg' –
O forse' convertire image.jpg -threshold 90% -canny 0x1 + 10% + 30% result.jpg' –
Ciao Marco. ..Grazie per la risposta. ma quello che voglio qui è ottenere le coordinate, l'angolo di rotazione, la larghezza e l'altezza del rettangolo per sovrapporre un'altra immagine. Si prega di vedere la mia altra domanda qui in modo da avere un'idea di ciò che sto cercando di ottenere. http://stackoverflow.com/questions/30971894/replacing-detected-object-in-a-frame-with-an-image-imageprocessing Spero di andare nel modo giusto. Se no, per favore guidami. Attualmente sto seguendo questo modo: http://www.imagemagick.org/discourse-server/viewtopic.php?t=20269 –