2012-09-11 25 views
5

Básicamente estoy procesando códigos de barras con un software de código abierto. Pero la herramienta a veces no detecta ningún código de barras.Detección de imágenes en blanco (la imagen que se espera es un código de barras) en C#

Así que quiero comprobar si la imagen estaba realmente en blanco o si contiene algún tipo de código de barras.

Mis imágenes se producen a través del escaneo y solo contienen un código de barras (si no están en blanco) y algunas imágenes de ruido producidas por el escaneo. Por lo tanto, mi problema podría ser incluso la comprobación de si la imagen contiene una cantidad significativa de píxeles negros concentrados para diferenciarla de las imágenes en blanco con ruido.

He comprobado this AS pregunta, pero la sugerencia fue utilizar "Probable Hough line transform" que encontré un poco exagerado para mi situación.

También he comprobado this pero tiene un código inseguro. Estoy buscando una solución administrada de C#.

Respuesta

0

La segunda muestra que ha vinculado utiliza el código unsafe solo para acelerar el acceso a los valores de píxel en su mapa de bits. Puede reemplazar fácilmente todo eso usando el método BitmapGetPixel() en su lugar (la desventaja es que esto será extremadamente lento, pero probablemente aún sea lo suficientemente rápido para sus propósitos).

En lo que respecta al código unsafe, sin embargo, no hay motivo para preocuparse por su uso. El único problema con la etiqueta unsafe es que algunos usuarios (dependiendo de sus niveles de permisos) pueden no ser capaces de ejecutar el código, aunque nunca me he encontrado con este problema potencial.

+1

Hay un punto intermedio entre el código aritmético del puntero 'GetPixel()' y 'inseguro', y esa es la clase' Marshal'. Ver por ejemplo esta respuesta: http://stackoverflow.com/a/1563170/860585 – Rotem

0

Puede usar esta biblioteca de C# OpenSURF y observar el valor del vector descriptor de características de SURF. No estoy seguro de si es "seguro"

Cuestiones relacionadas