anticrist Posted November 21, 2014 Report Posted November 21, 2014 (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 setBifeaza 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 AddLibraries->clik pe icon tip fisier si introduceti calea catre acest fisier C:\OpenCV2.1\lib si addC includes-> clik pe icon tip fisier si introduceti calea catre acest fisier C:\OpenCV2.1\include\opencv si addC++ includes-> clik pe icon tip fisier si introduceti calea catre acest fisier C:\OpenCV2.1\include\opencv si addDupa cum se vede este nevoie si de instalarea anumitor pakete(library) care se pot gasi pe devpaks.orgEu 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_inserterusing 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 November 22, 2014 by anticrist Quote