Una vez que has aprendido a instalar OpenCV, es interesante a crear tus primeros programas en él.
El primer programa va a ser la superposición de dos imágenes con su respectiva transparencia. Se introduce la transparencia de una imagen y en la otra imagen se obtiene la contraria (1 – alpha).
Para probar la aplicación, copia y pega este código en un archivo de texto con nombre ejemplo.cpp:
#include #include #include #include int main(int argc, char* argv[]) { double alpha = 0.5; double beta; double input; cv::Mat src1, src2, dst; // Obtenemos la transparencia Alpha std::cout<<"Introduce Alpha [0-1]: "; std::cin>>input; // Comprobamos que Alpha se encuentra entre 0 y 1 if( alpha >= 0 && alpha <= 1 ) { alpha = input; } // Leemos la imagen (mismos pixels en 'x' y en 'y', mismo tipo) src1 = cv::imread("1.png"); src2 = cv::imread("2.png"); // Si hay error de lectura mostramos el error if( !src1.data ) { std::cout<<"Error loading src1 \n"; return -1; } if( !src2.data ) { std::cout<<"Error loading src2 \n"; return -1; } // Creamos una ventana cv::namedWindow("Linear Blend", 1); // Obtenemos Beta beta = ( 1.0 - alpha ); // Aplicamos el algoritmo de mezcla cv::addWeighted( src1, alpha, src2, beta, 0.0, dst); // Y la mostramos en una ventana cv::imshow( "Linear Blend", dst ); cv::waitKey(0); return 0; }
Para compilar usaremos CMake. Hace poco hice un tutorial sobre cómo utilizar y usar CMake de una manera simple. En nuestro ejemplo el archivo CMakeLists.txt quedaría así:
CMAKE_MINIMUM_REQUIRED(VERSION 2.8) PROJECT(ejemplo) FIND_PACKAGE(OpenCV REQUIRED) ADD_EXECUTABLE(ejemplo ejemplo.cpp) TARGET_LINK_LIBRARIES(ejemplo ${OpenCV_LIBS})
Compila y ejecuta y verás el resultado que aparece en la imagen de arriba. Enhorabuena, has creado tu primer programa en OpenCV.
https://www.youtube.com/embed/z-xGk9c_eOw Guionista y locutor: Manuel Ignacio López Quintero.Fecha de publicación: 31 de diciembre de 2024.
Ver comentarios
Saludos, estoy trabajando en un proyecto de reconocimiento de patrones en imagenes digitales, me toca utilizar la matriz de coocurrencia y la transformada de fourier para extraer los rasgos de textura, ya investigue y estan implementados en OpenCV, pero no tengo ni idea de como empezar, todos los tutoriales que he encontrado estan en ingles y he tenido problemas con las traducciones, si me puedes ayudar te lo agradeceria.
Ángel, he encontrado ésto:
http://blog.electricbricks.com/es/2010/05/reconocimiento-objetos-opencv/
http://clouddistrict.com/articulo/tutorial-reconocimiento-de-patrones-con-opencv-en-iphone-iii/
No sé si te servirá de ayuda. Lo que sí te digo es que si quieres información abundante y tutoriales específicos sobre OpenCV tienes que verlos en inglés.
Espero haberte sido de ayuda.
Bueno Muchas Gracias por tu ayuda. Tratare de hacer un tutorial para luego postearlo.
Hola! Si quiero ejecutarlo en la máquina virtual, entonces, cómo llevo los archivos desde el PC a la máquina virtual? Y tengo que ir a ese directorio poniendo cd/ etc. ? Gracias