Este artículo detalla el proceso de instalación y configuración de OpenCV, específicamente la versión compilada con MSVC (Microsoft Visual C++), para su uso dentro del entorno de desarrollo Qt.
Instalación y Configuración de CMake
- Descargue CMake desde su sitio oficial: CMake Download.
- Seleccione la versión de instalador adecuada para su sistema operativo.
- Durante la instalación, asegúrese de añadir CMake al PATH del sistema.
- Complete la instalación seleccionando la carpeta de destino.
Descarga y Compilación de OpenCV
- Descargue el código fuente de OpenCV desde la página de lanzamientos: OpenCV Releases.
- Se recomienda descargar las fuentes ('Sources') y compilar OpenCV manualmente. Si utiliza una versión precompilada para Windows, puede omitir los pasos de compilación manual.
- Extraiga los archivos fuente de OpenCV en una ubicación de su elección y anote la ruta.
- Cree una carpeta denominada
builddentro del directorio donde extrajo OpenCV. - Abra CMake-GUI y configure las rutas:
- En el campo
Where is the source code, ingrese la ruta al directorio de las fuentes de OpenCV. - En el campo
Where to build the binaries, ingrese la ruta a la carpetabuildque creó.
- En el campo
- Haga clic en
Configure. Seleccione el generador adecuado para su compilador de Visual Studio (por ejemplo, "Visual Studio 17 2022"). - Una vez configurado, marque la opción
BUILD_opencv_world. Esto consolidará todos los módulos de OpenCV en una única bibiloteca (DLL), simplificando la vinculación. - Vuelva a hacer clic en
Configurey luego enGeneratepara crear los archivos del proyecto de Visual Studio. - Navegue hasta la carpeta
buildde OpenCV y abra el archivo.slncon Visual Studio. Alternativamente, puede hacer clic enOpen Projectdentro de CMake. - En Visual Studio, vaya a
Build>Batch Build.... - Seleccione las casillas para
ALL_BUILDeINSTALL, y luego inicie la compilación. Este proceso puede tomar aproximadamente media hora.
Integración de OpenCV con Proyectos Qt
-
Cree un archivo de configuración
.pri(por ejemplo,opencv.pri) en una ubicación conveniente. Este archivo se utiliza para incluir dependencias de terceros en proyectos Qt. -
Edite el archivo
opencv.priy añada las siguientes directivas, ajustando las rutas y la versión según su instalación: ```INCLUDEPATH += C:/path/to/opencv/build/install/include DEPENDPATH += C:/path/to/opencv/build/install/include
Configuración para compilaciones Debug
Debug { LIBS += -LC:/path/to/opencv/build/install/x64/vc17/lib -lopencv_world455d }
Configuración para compilaciones Release
Release { LIBS += -LC:/path/to/opencv/build/install/x64/vc17/lib -lopencv_world455 }
Nota: Al habiiltar `BUILD_opencv_world` durante la compilación, solo es necesario vincular la biblioteca `opencv_world`, en lugar de múltiples bibliotecas individuales. -
Guarde el archivo y cámbiele la extensión a
.pri. -
Asegúrese de que la ruta al directorio
binde su instalación de OpenCV esté añadida a las variables de entornoPATHdel sistema.
Prueba de la Integración Qt y OpenCV
-
Cree un nuevo proyecto Qt y configure el compilador para usar el kit MSVC correspondiente. Si no tiene un kit MSVC instalado, puede añadirlo a través del "Maintenance Tool" de Qt.
-
Agregue la siguiente línea a su archivo
.propara incluir la configuración de OpenCV: ```include(C:/path/to/your/opencv.pri)
-
Guarde el archivo
.pro. Es posible que Qt Creator cree automáticamente una copia del archivo.prien la estructura del proyecto. -
Reemplace el contenido de su archivo
main.cppcon el siguiente código para probar la lectura y visualización de una imagen: ```#include <QApplication> #include <opencv2/core.hpp> #include <opencv2/highgui.hpp> #include <opencv2/imgcodecs.hpp> // Para imread #include <opencv2/imgproc.hpp> #include
int main(int argc, char *argv[]) { QApplication app(argc, argv);
// Cargar una imagen usando OpenCV cv::Mat image = cv::imread("C:/path/to/your/image.jpg", cv::IMREAD_COLOR); if (image.empty()) { std::cerr << "Error: No se pudo cargar la imagen." << std::endl; return -1; } // Crear una ventana y mostrar la imagen const char* windowName = "Display window"; cv::namedWindow(windowName, cv::WINDOW_AUTOSIZE); cv::imshow(windowName, image); // Esperar indefinidamente hasta que se presione una tecla cv::waitKey(0); return app.exec();}
-
Compile y ejecute su proyecto. Si la imagen se muestra correctamente, la configuración ha sido exitosa.