2012-07-15 13 views
5

Ho un'immagine con immagine 400x400 per identificare diversi componenti da essa. Ma quando provo a identificare i componenti usando quella maggior parte del tempo, non fornisce risposte corrette. Quindi ho bisogno di sapere se ci sono alcuni metodi in javacv o opencv per migliorare la qualità dell'immagine o aumentare la dimensione dell'immagine senza influire sulla sua qualità?Come migliorare la qualità dell'immagine prima dell'inizio dell'elaborazione dell'immagine in javacv o opencv?

Questa è l'immagine di esempio che utilizzo. (Questa è la dimensione massima che posso ottenere e non posso utilizzare qualsiasi software di editing di foto nel progetto, perché è generato dinamicamente immagine.)

enter image description here

Nella mia elaborazione delle immagini che ho bisogno di identificare le piazze e rettangoli che collega quei quadrati. E specialmente ho bisogno di ottenere la larghezza e l'altezza di quelli che usano i valori dei pixel.

+0

Sei sicuro di non avere modo di ottenere un'immagine molto migliore? –

+0

Sì, ho generato questa immagine utilizzando il pacchetto kabeja.Quindi questa è la massima qualità che posso ottenere. Ho bisogno di migliorare la qualità di questa immagine usando i metodi javacv. Quindi cerco di aumentare la dimensione dell'immagine e spero che possa essere in grado di usare le tecniche di elaborazione dell'immagine per estrarre le informazioni. –

+0

@Abido è possibile aumentare la dimensione dell'immagine in opencv? Intendo ridimensionare l'immagine? –

risposta

3

È possibile ridimensionarlo a qualsiasi dimensione, se è possibile vettorializzare ... e nel tuo caso la vestizione è abbastanza semplice in quanto hai alcuni semplici oggetti geometrici nell'immagine.

Quindi, a mio avviso, il tuo approccio dovrebbe essere simile a questo:

  1. Rileva bordi nell'immagine con una soglia elevata (quando si dispone di oggetti molto diversi)
  2. vectorize loro
  3. scala loro di qualsiasi dimensione

Si dovrebbe anche guardare il seguente link: Increasing camera capture resolution in OpenCV.

+0

Prima però, aumenta il contrasto e aumenta la nitidezza. Questo farà emergere immediatamente i bordi. Per migliorare il bordo, prendere i bordi scoperti e scurirli e anche i loro pixel circostanti con un filtro minimo. Questo dovrebbe fare il trucco nello stabilire chiari confini probabalistici. –

2

Se ci si attiene all'elaborazione delle immagini, il modo più semplice per farlo è applicare un equalizeHist(). Ciò aumenterà il contrasto e migliorerà i passaggi successivi.

Ma, e questo è un biiiig "ma", perché lo stai facendo? Proprio la lettura di questo post, ho visto un'altra soluzione, e un rapido google mi sarà provato io ho ragione:

Kabeja è una libreria Java per l'analisi, l'elaborazione e la conversione formato DXF di Autodesk. Puoi utilizzare Kabeja dal CommandLine o incorporato nella tua applicazione. Tutti i dati analizzati sono accessibili con l'API di tipo DOM .

Ciò significa che è possibile estrarre direttamente tutti i dati desiderati da tale immagine in un formato di testo. Probabilmente qualcosa come "alla posizione x, y c'è un transistor, o qualsiasi altra cosa." Quindi, perché renderesti quel file in un'immagine, quindi analizzerai quell'immagine per estrarre i componenti?

Se lo fai per scuola (so che molti progetti scolastici sono così) ti consiglierei di trovare un vero problema da risolvere e di proporlo al tuo insegnante. Sarai più felice di fare qualcosa che non sia privo di senso.

2

vectorize l'immagine è l'opzione migliore immagino come suggerito da mocap.
puoi anche utilizzare strumenti di miglioramento come nitidezza, saturazione, ecc.

Problemi correlati