Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - hojanico19

#1
Programación C/C++ / OpenCv
17 Julio 2012, 19:57 PM
 :huh: Hola a todos, soy nuevo en este foro, espero yo poder ayudarles, pero en este momento soy yo el que necesita su ayuda...
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 (cpp) [Seleccionar]

//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