Pregunta

Tengo algunos problemas con OpenCVs cvCanny(...) y la Imagen de los tipos de datos que puede manejar.Bien, tal vez los chicos/chicas saben una solución.

Yo tengo una de 32 bits en coma flotante de la imagen y quiero realizar cvCanny en él.El problema es cvCanny sólo puede manejar "IPL_DEPTH_8S" o U (signed / unsigned short), o al menos eso es lo que sospecho.El OpenCV manual no indica cuánto se puede manejar y esta línea en cv/cvcanny.cpp no levantar mis esperanzas:

...
if( CV_MAT_TYPE( src->type ) != CV_8UC1 ||
CV_MAT_TYPE( dst->type ) != CV_8UC1 )
CV_ERROR( CV_StsUnsupportedFormat, "" );
...

Las imágenes que tengo son en escala de grises / solo canal float32 poco y los valores en la imagen son de entre 0.0 y 16.0.El Casting de mi float32 a unsigned short no ayuda mucho ya que los valores perdería su precisión y yo los echo de menos los bordes con OpenCVs astuto.

¿Chicos/chicas pasar a conocer una solución para mi problema?(además de utilizar ITK :) )

¿Fue útil?

Solución

En este momento, ya que cvCanny sólo es compatible con un solo canal de imágenes de 8 bits, lo único que ocurre es que la escala de un valor en su imagen por 255/16 en una nueva imagen de tipo CV_8UC1 para que oscila entre 0 - 255 para minimizar el precisión que has perdido.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top