/ / trova la posizione dell'immagine surrandata dall'area nera - matlab

trova la posizione dell'immagine surrandata dall'area nera - matlab

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 № 1

Se 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.