Foros

Avisos
Vaciar todo

Problemas OpenCV  


ionthas
Respuestas: 153
Registrado
(@ionthas)
Ardero estimado
Registrado: hace 12 años

Buenas a todos.

Tengo problemas al ejecutar ese programa simple con las librerias OpenCV, utilizo el Visual Studio 2005.

#include "highgui.h"
int main( int argc, char** argv ) {
IplImage* img = cvLoadImage( argv[1] );
cvNamedWindow( "Example1", CV_WINDOW_AUTOSIZE );
cvShowImage( "Example1", img );
cvWaitKey(0);
cvReleaseImage( &img );
cvDestroyWindow( "Example1" );
}

He seguido los pasos de esa web para agregar las librerias, tambien he puesto la variable de entorno PATH como tiene que ser.

http://zarzamora.com.mx/archivo-historico/316

El programa me compila bien pero me salta ese error:

erroropencvta6.th erroropencvta6.th

Si alguien me puede ayudar le estaria agradecido.

Saludos y gracias.

3 respuestas
zuma
Respuestas: 23
 zuma
Registrado
(@zuma)
Ardero eminente
Registrado: hace 15 años

Buenas Wolfskin,

A ver si te puedo echar una manilla con suerte. Por lo que pones puede ser varias cosas

1º) En la línea 3 del código, donde pones :

IplImage* img = cvLoadImage( argv[1] );

-> Prueba a comprobar si te carga bien la imagen comprobado que no apunta a null, vamos, pon un

if(!img){
printf("nError cargando fichero");return 0;
}

Si apunta a null puede ser porque necesita que definas un espacio de color de referencia para cargar la imagen, y eso lo puedes hacer colocando un flag en el cvLoadImage(nombre_fichero, flag). Mirate la documentación de la API, que yo ahora no me acuerdo de memoria de los que hay.

Si sigue sin funcionar pasemos al punto siguiente

2º) Puede que falten las dll de OpenCV o éstas estén corruptas
-> por el mensaje que muestras en pantalla no lo creo probable, ...pero por probar que no falte.

Como el 2º no va a ser, y si sigue petando, prueba esto último

3º) Puede (y sólo puede) que al copiar las librerías( los .lib, me refiero) de OpenCV no sean compatibles con la versión de VS 2005(en alguna que otra librería me ha pasado que funcionaba bien en VS y en Borland no , o viceversa)
->Para comprobarlo bastaría con recompilar uno de los ejemplos, si no tira, puede ser este el fallo.
->La solución es recompilar el código de OpenCV para tu entorno de desarrollo. En principio no debería ser dificil, pues viene el proyecto para Visual Studio listo para ser compilado.

Una opción que se me ha ocurrido es que al ejecutarlo desde windows y no en modo consola no pille como parámetro el nombre del ficheo de imagen que quieres abrir,...prueba a hacer el cvLoadImage con un nombre de fichero de imagen que vayas a tener en la carpeta de ejecutable.

Suerte!

Responder
ionthas
Respuestas: 153
Registrado
(@ionthas)
Ardero estimado
Registrado: hace 12 años

Muchas gracias zuma.

Al final era que tenia que compilar el proyecto C++ como proyecto C. xD

Saludos.

Responder
fusion
Respuestas: 391
Socio
(@fusion)
Ardero reputado
Registrado: hace 13 años

Creo que si cargas highgui.hpp en vez de highgui.h debiera valer. No puedo ayudarte mucho pues la version que tengo es la 2.4.13 y solo esta compilado para VS2012 y 2013 (ojo, no usar el 2010 que es muy malo), yo empleo el VS2013 que es gratuito para generar aplicaciones opensource

Tambien me compila con muy pocos cambios en debian 8 jessie 🙂

Responder
Compartir: