Resulta que estoy programando en Microsoft Visual C++ 2010 con OpenCv 2.1. En el principio todo iva bien hasta que cvCapture comenzo a lanzar errores, lo que sucedio fue lo siguiente:
Código
//Libreria Creadora #include "stdafx.h" //Libreria donde encontramos funciones para el Mouse #include <windows.h> //Libreria de OpenCV #include <cv.h> //Sub Lbreria de OpenCV #include <highgui.h> #include <cxcore.h> #include <stdio.h> #include <stdlib.h> #define A (DWORD)50 #define B (DWORD)50 int main( int argc, char** argv[] ) { int i,j,centroi,centroj,a,b,c,dif1,dif2,h,w,X,Y; int di=0; int dj=0; double max=0; int cont=0; int cond=0; float me=1/2; int letra; char foto; //Abrimos La Cámara CvCapture* camara=0; camara=cvCaptureFromCAM(1); //Definimos las variables que toman las Capturas IplImage* imagen; IplImage* imagen2; IplImage* imagen3; //Programa Principal while(true) { printf("Para Abrir Visor de Imagen presione '1' \n"); printf("Para Abrir MousePad presione '2' \n"); printf("Para Salir del Programa presione '3' \n"); printf("Número: "); scanf("%d",&letra); if (letra==2) { while(true) { int cont2=0; int di=0; int dj=0; imagen2 = cvQueryFrame(camara); cvSaveImage("saliendo.jpg",imagen2); imagen=cvLoadImage("saliendo.jpg",0); h=imagen->width; w=imagen->height; int sumai=0; int sumaj=0; if(!imagen) { break; } for (i=0;i=h;i++) { for (j=0;j=w;j++) { int pixel=0; pixel = ((uchar *)(imagen->imageData + i*imagen->widthStep))[j*imagen->nChannels +0]; if (pixel>250) { sumai = sumai+i; sumaj = sumaj+j; max= (pixel>max) ? pixel:max; } } } centroi = sumai/cont; centroj = sumaj/cont; a=centroi; b=centroj; c=cont; if (max=255) { while(true) { imagen3 = cvQueryFrame(camara); cvSaveImage("saliendo.jpg",imagen3); imagen=cvLoadImage("saliendo.jpg",1); if(!imagen) {break;} for (i=0;i=h;i++) { for (j=0;j=w;j++) { int pixel = ((uchar *)(imagen->imageData + i*imagen->widthStep))[j*imagen->nChannels +0]; if (pixel>250) { sumai = sumai+i; sumaj = sumaj+j; cont = cont+1; } } } centroi = sumai/cont; centroj = sumaj/cont; if ((cont-c)<20 && ((cont-c)>-20)) { dif1=0; dif2=0; } else { dif1=centroi-a; dif2=b-centroj; } di=di + dif1; dj=dj + dif2; a=centroi; b=centroj; cont2=cont2+1; if (cont2==3) { if ((di<8) & (dj<8)) { mouse_event(MOUSEEVENTF_LEFTDOWN, A, B, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, A, B, 0, 0); break; } if ((di>8) || (dj>8)) { INPUT *buffer = new INPUT[3]; //Asignar un buffer X=di*10; Y=dj*10; mouse_event(MOUSEEVENTF_ABSOLUTE || MOUSEEVENTF_MOVE, X, Y, 0, 0); break; } } } } } } else if (letra==3) {break;} else { printf("Error Ingrese Numero Nuevamente \n"); printf("Numero: "); scanf("%d",&letra); } } //Ciclo de la Aplicación cvReleaseCapture(&camara); return 0; }
Este corresponde a un programa que identifica puntos de una camara y si se mueven el mouse se mueve, de lo contrario si no se mueve es un click..
En esto me salen varios errores:
1>------ Build started: Project: tarea, Configuration: Debug Win32 ------
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(299,5): warning MSB8004: Output Directory does not end with a trailing slash. This build instance will add the slash as it is required to allow proper evaluation of the Output Directory.
1> tarea.cpp
1>tarea.cpp(46): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdio.h(304) : see declaration of 'scanf'
1>tarea.cpp(150): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdio.h(304) : see declaration of 'scanf'
1>tarea.cpp(30): warning C4101: 'foto' : unreferenced local variable
1>c:\opencv\include\opencv\cxoperations.hpp(81): warning C4793: '`anonymous namespace'::CV_XADD' : function compiled as native :
1> Inline native assembly not supported in managed code
1>tarea.obj : warning LNK4248: unresolved typeref token (0100001E) for 'CvCapture'; image may not run
1> tarea.vcxproj -> C:\Users\Eduardo\documents\visual studio 2010\Projects\tarea\tarea\..\..\..\..\..\Desktop\Tarea\tarea.exe
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(562,5): error MSB6006: "mt.exe" exited with code 31.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Si me pueden ayudar ahora seria ideal, ya que si logro hacer esto no reprobare mi curso..de ante mano gracias...
Y es un gusto conocerlos