More stable web-cam

This commit is contained in:
AlexeyAB
2018-03-21 00:40:01 +03:00
parent fe4f01b1d8
commit 101de2b07a
2 changed files with 26 additions and 8 deletions

View File

@ -197,16 +197,32 @@ void send_mjpeg(IplImage* ipl, int port, int timeout, int quality) {
CvCapture* get_capture_webcam(int index) {
CvCapture* cap = (CvCapture*)new cv::VideoCapture(index);
CvCapture* cap = NULL;
try {
cap = (CvCapture*)new cv::VideoCapture(index);
//((cv::VideoCapture*)cap)->set(CV_CAP_PROP_FRAME_WIDTH, 1280);
//((cv::VideoCapture*)cap)->set(CV_CAP_PROP_FRAME_HEIGHT, 960);
}
catch (...) {
std::cout << " Error: Web-camera " << index << " can't be opened! \n";
}
return cap;
}
IplImage* get_webcam_frame(CvCapture *cap) {
cv::VideoCapture &cpp_cap = *(cv::VideoCapture *)cap;
cv::Mat frame;
cpp_cap >> frame;
IplImage* src = cvCreateImage(cvSize(frame.cols, frame.rows), 8, frame.channels());
*src = frame;
IplImage* src = NULL;
try {
cv::VideoCapture &cpp_cap = *(cv::VideoCapture *)cap;
cv::Mat frame;
if (cpp_cap.isOpened()) {
cpp_cap >> frame;
src = cvCreateImage(cvSize(frame.cols, frame.rows), 8, frame.channels());
*src = frame;
}
}
catch (...) {
std::cout << " Web-camera stoped! \n";
}
return src;
}