Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <opencv2/highgui/highgui.hpp>
- #include <curl/curl.h>
- #include <iostream>
- #include <string>
- using namespace std;
- using namespace cv;
- size_t uploadImage(void* ptr, size_t size, size_t nmemb, void* stream)
- {
- cout << "Upload started.\n";
- size_t ret = 0;
- ret = fread(ptr, size, nmemb, (FILE*)stream);
- cout << "RET: " << ret << endl;
- return ret;
- }
- int main()
- {
- VideoCapture cap(0); // Domyślna kamerka (usb w laptopie - to ta nad matrycą)
- if(!cap.isOpened()) // Jeśli nie udało się otworzyć, kończ program
- {
- cout << "Cannot open the video cam" << endl;
- return -1;
- }
- // Rozmiar obrazu z kamerki
- double dWidth = cap.get(CV_CAP_PROP_FRAME_WIDTH);
- double dHeight = cap.get(CV_CAP_PROP_FRAME_HEIGHT);
- cout << "Frame size : " << dWidth << " x " << dHeight << endl;
- /* Połączenie z serwerem */
- CURL* curl = curl_easy_init();
- curl_easy_setopt(curl, CURLOPT_READFUNCTION, uploadImage);
- curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);
- curl_easy_setopt(curl, CURLOPT_URL, "ftp://sds");
- curl_easy_setopt(curl, CURLOPT_USERNAME, "admin@");
- curl_easy_setopt(curl, CURLOPT_PASSWORD, "assa");
- Mat frame;
- bool bSuccess = cap.read(frame); // Odczytaj dane ze zdjęcia
- if(!bSuccess) // Jeśli siadło, odklei się
- {
- cout << "Cannot read a frame from video stream" << endl;
- return -1;
- }
- vector <uchar> buffer; // Buffor do odczytania przekonwerterowanych danych (do formatu np. JPEG)
- imencode(".jpg", frame, buffer); // Zapis do JPEG (dobra kompresja stratna)
- curl_easy_setopt(curl, CURLOPT_READDATA, reinterpret_cast <char*>(buffer[0]));
- CURLcode res = curl_easy_perform(curl);
- if(res != CURLE_OK)
- fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement