Cómo utilizar VC para obtener información de píxeles en Halcon
El procesamiento de imágenes en el entorno VC a menudo requiere que usted escriba sus propias clases de procesamiento de imágenes. Ahora hay algunas clases escritas por personas mayores, como la clase CDib y la clase DIBAPI, que puede "obtener" directamente. La biblioteca HALCON es equivalente a una clase empaquetada. Después de realizar algunas configuraciones simples en VC, puede usar sus funciones. A continuación se explica cómo configurarlo en el entorno VC:
1. El primero en el proyecto -> Agregue halconcpp.lib a la página de propiedades del enlace en la configuración....; >
2 En segundo lugar, agregue el directorio $ (raíz de halcon) \include, $ (raíz de halcon) \include\CPP al preprocesador en la página de propiedades de C/C++ en Proyecto->Configuración....;
3. Luego agregue la ruta $ (halcon root)\lib\i586-nt4....;
4. Finalmente, por supuesto, no olvide agregar el encabezado de clase. archivo al programa: # # Incluyo "halconcpp. h"
La configuración anterior está configurada y todo está bien. Ahora puede llamar funciones en HDevelop en el programa, como el énfasis de la función de mejora de imagen (hImage y HRotateImage, 7, 7, 2.0), etc. Sabemos que las imágenes generalmente se usan como variables de tupla en HDevelop, por lo que las variables deben convertirse en VC, por ejemplo:
Para imágenes en escala de grises, el número de imágenes se puede convertir en una variable Hobject:
gen_image 1(& hImage, "byte", WIDTH, HEIGHT, (long)m_pImageBuffer);
Para imágenes en color, R, G y B tres componentes:
extrae RGB 24 canales (m_pimage buffer, m_pRed, m_pGreen, m_pBlue);
Luego convierte a variable Hobject:
gen_image3(& hImage, "byte", ancho, alto, (long)m_pRed, (long)m_pGreen, (long)m_pBlue);
A continuación, puede llamar a las funciones de procesamiento de imágenes, como
Mejora de imagen: énfasis (hImage, & hRotateImage, 7, 7, 2.0); //Los parámetros se pueden ajustar.
Umbral: bin_threshold (himage, & hRotateImage);
rgb1_to_gray(hImage, & amphRotateImage); //Convertir a imagen en escala de grises
La variable procesada se convierte en un búfer para visualización de imágenes: get_image_pointer 1(hrotateimage, (long *)&m_pImageBuffer, Type & width 1 & height 1);
Pero encontrará algunos problemas al llamar a las funciones de la biblioteca HALCON, como rotar_imagen ( himage, & hRotateImage, 90, "constant"); convierte la variable procesada en
get_image_pointer 3 (hRotateImage, (long *) & m_pRed, (long *) & m_pGreen, (long *) & m_pBlue, Type & width 1 & height 1);
ComposeRGB24(m_pRed, m_pGreen, m_pBlue, m_pimage buffer);
Pero se produjo un error durante la ejecución y la función get_image_pointer3 informó un error. error. ¡El valor de escala de grises indefinido en get_image_pointer 3 aún debe resolverse!