Jump to content
anticrist

Dev c++ Webcam captura imagine

Recommended Posts

Posted (edited)

In seara aceasta am utilizat library OpenCV2.1 pentru a realiza o simpla captura foto a cameri web.Si daca tot am realizat ce doream cautand informati pe situri pana am reusit sa pun totul intr-o ordine de functionare am decis sa impart micul proiect pentru cei care ar dori sa realizeze un proiect asemanator .

Pentru inceput descarca OpenCV2.1 si instaleazal in c:\\

Deschide Dev c++ -> Compiler Options ->Add a new compiler set (+) si denumeste OpenCV noul set

Bifeaza cele doua casute si insereaza aceste comenzi catre library :

-lwininet -lgdi32 -lws2_32 -zip -L"C:\OpenCV2.1\lib" -lcxcore210 -lcv210 -lcvaux210 -lhighgui210 -

Bifati Directories ->Binaries ->clik pe icon tip fisier si introduceti calea catre acest fisier C:\OpenCV2.1\bin si Add

Libraries->clik pe icon tip fisier si introduceti calea catre acest fisier C:\OpenCV2.1\lib si add

C includes-> clik pe icon tip fisier si introduceti calea catre acest fisier C:\OpenCV2.1\include\opencv si add

C++ includes-> clik pe icon tip fisier si introduceti calea catre acest fisier C:\OpenCV2.1\include\opencv si add

Dupa cum se vede este nevoie si de instalarea anumitor pakete(library) care se pot gasi pe devpaks.org

Eu presupun ca totusi acestea sunt deja instalate.

Dupa ce sau setat optiunele de compiler se insereaza codul si se compileaza .



#include <windows.h>
#include<iostream>
#include "cv.h"
#include "highgui.h"
#include <stdio.h>
#include <string>
#include <cstdlib> // for rand()
#include <cctype> // for isalnum()
#include <algorithm> // for back_inserter


using namespace cv;
using namespace std;


string RandomString(int len)
{
srand(time(0));
string str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
int pos;
while(str.size() != len) {
pos = ((rand() % (str.size() - 1)));
str.erase (pos, 1);
}
return str;
}


int main()
{
CvCapture* capture = cvCaptureFromCAM( CV_CAP_ANY );
cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH, 752);
cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT, 588);



IplImage* frame;
//in aceasta instructiune for se seteaza timpul de catura a camerei web functioneaza
//precum un aparat foto vechi cu capac folosit in filmele western
for (int i = 0; i < 30; i++)
{
frame = cvQueryFrame( capture );
}

char* namefile=".jpg";
string random_str = RandomString(10)+namefile;

//salvarea imagini
cvSaveImage(string( random_str+namefile).c_str(), frame);


cvReleaseCapture( &capture );

return 0;
}



Am revenit cu rezolvarea metodei random care foloseste si numere si litere pentru a generea un sir de caractere care poate inlocui numele fisierului salvat astfel incat de cate ori se aceseaza programul se salveaza cu nume diferit. Bucata de cod care a fost buclucasa string( random_str+namefile).c_str() ,c_str converteste din string in c-style string adica pointer la caracter e nevoie de acest format pentru numele fisierelor .Se poate insera si un cod care sa trimita date pe smtp , ftp ,http .

Edited by anticrist

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...