C'è un'immagine, circondata da una regione nera, vorrei trovare la posizione esatta di questa immagine (che è circondata dalla regione nera). Intendo le coordinate dei quattro angoli di questa immagine. Grazie.
risposte:
0 per risposta № 1Se sei in MATLAB:
Mascherare l'area nera. O prova:
Image = logical(Image)
Oppure trova l'intensità di un voxel nero (probabilmente zero) e dì:
Image = ind2sub(size(Image), find(Image ~= blackPixelIntensity))
Una volta che hai la parte binaria non nera dell'immagine (quindi solo l'oggetto e non lo sfondo), vuoi solo trovare gli angoli min, max di ciascun voxel. Dire:
[x y] = ind2sub(size(Image), find(Image ~= 0))
c1 = [min(x) min(y)]
c2 = [max(x) min(y)]
c3 = [max(x) max(y)]
c4 = [min(x) min(y)]
Dove c1, ..., c4 sono i tuoi angoli :)
Fammi sapere qualche errore di sintassi perché non ho accesso a matlab atm.
tylerthemiler
Modifica: se si desidera semplicemente l'intero perimetro della parte non nera dell'immagine, basta eseguire qualsiasi delle prime due righe di codice sopra e quindi pronunciare:
Imperim = bwperim(Image)
Edit2: nota che Image è l'array 2D, puoi usare qualunque cosa tu voglia caricare nel jpg: P
1 per risposta № 2
Potresti applicare una seconda maschera derivativa sul tuoimmagine che raccoglierà con precisione i punti in cui il colore passa dal nero al contenuto dell'immagine. Puoi quindi estrarre la prima e l'ultima riga e colonna e avrai le tue coordinate.