2012-09-11 7 views
5

Fondamentalmente sto elaborando codici a barre con un software open source. Ma a volte lo strumento non riesce a rilevare alcun codice a barre.Rilevamento di immagini vuote (l'immagine prevista è un codice a barre) in C#

Quindi voglio verificare se l'immagine è veramente vuota o contiene una specie di codice a barre.

Le immagini sono prodotte tramite scansione e contengono solo un codice a barre (se non sono vuoti) e alcune immagini di rumore prodotte dalla scansione. Quindi il mio problema potrebbe essere anche il basso per verificare se l'immagine contiene una quantità significativa di pixel neri concentrati per differenziarlo dalle immagini dello spazio bianco con il rumore.

Ho controllato la domanda this SO, ma il suggerimento era di usare "trasformazione di linea Hough probabilistica" che ho trovato un po 'eccessivo per la mia situazione.

Ho anche verificato this ma ha codice non sicuro. Sto cercando una soluzione C# gestita.

risposta

0

Il secondo esempio a cui è stato collegato utilizza il codice unsafe solo per accelerare l'accesso ai valori dei pixel nella bitmap. Puoi facilmente sostituire tutto usando il metodo GetPixel() di Bitmap (il lato negativo è che questo sarà estremamente lento, ma probabilmente sarà ancora abbastanza veloce per i tuoi scopi).

Per quanto riguarda il codice unsafe, tuttavia, non c'è motivo di preoccuparsi di utilizzarlo. L'unico problema con il tag unsafe è che alcuni utenti (a seconda dei loro livelli di autorizzazione) potrebbero non essere in grado di eseguire il codice, anche se in realtà non ho mai riscontrato questo potenziale problema.

+1

C'è una via di mezzo tra il codice aritmetico del puntatore 'GetPixel()' e 'unsafe', e questa è la classe' Marshal'. Vedi ad esempio questa risposta: http://stackoverflow.com/a/1563170/860585 – Rotem

0

È possibile utilizzare questa libreria C# OpenSURF e osservare il valore del vettore di descrittore di funzione SURF. Non sono sicuro che sia "sicuro"

Problemi correlati