Ask Your Question

doulos_21's profile - activity

2018-06-04 11:34:56 -0600 received badge  Popular Question (source)
2014-11-18 01:51:01 -0600 answered a question how can I make imwrite work with a Mat video frame?

this code works fine. The issue was in the version of visual studio I was using and dynamically linking the dll lib files. It would of helped to put a version number when it was said the new open cv only works with the latest visual studio version. 2.49 will only work well with visual studio 2010 and up.

if your having trouble linking lib files and installing open cv 2.49 or higher check out this link.

https://www.youtube.com/watch?v=cgo0UitHfp8&list=PLvwB65U8V0HHCEyW2UTyOJym5FsdqfbHQ

2014-11-14 11:05:24 -0600 received badge  Editor (source)
2014-11-13 13:07:33 -0600 commented question how can I make imwrite work with a Mat video frame?

this is the error OpenCV Error: Unspecified error (could not find a writer for the specified exten sion) in cv::imwrite_, file ........\opencv\modules\highgui\src\loadsave.cpp, line 275

2014-11-13 12:24:48 -0600 commented question how can I make imwrite work with a Mat video frame?

in if (c == 's') I tried bool bSuccess = imwrite("C:/TestImage.jpg", imgH); and it crashed. I don't know how to convert imgH to a savable image.

2014-11-12 15:43:24 -0600 asked a question how can I make imwrite work with a Mat video frame?

In my code where I state if (c == 's')

how do I save Mat imgH = frame + Scalar(0.299bright, 0.587bright, 0.114*bright); to a index-able image to my hard drive? I tried imwrite and it just crashes any ideas what I'm missing?

#include <opencv/cv.h> 
#include "opencv2/highgui/highgui.hpp"
#include <iostream>
#include <cstdlib>
#include <windows.h> 

using namespace cv;
using namespace std;

double Brightness;
double Contrast;
double Saturation;
double Gain;
double Exposure; 

char buffer[100];
int  i = 0;
int  c = 1; 
//const std::string fileName = "c://pics//image%u.jpg";

int main(int argc, char* argv[])
{

    VideoCapture cap(0); // open the video camera no. 0



    if (!cap.isOpened()){
         cout << "Cannot open the video cam" << endl;
         return -1;
    }


    double dWidth = cap.get(CV_CAP_PROP_FRAME_WIDTH); //get the width of frames of the video
    double dHeight = cap.get(CV_CAP_PROP_FRAME_HEIGHT); //get the height of frames of the video
    cap.set(CV_CAP_PROP_AUTO_EXPOSURE,0.0 );                // turn off auto exposure 

    // Get fixed Cam Properties

    Brightness = cap.get(CV_CAP_PROP_BRIGHTNESS); 
    Contrast   = cap.get(CV_CAP_PROP_CONTRAST );
    Saturation = cap.get(CV_CAP_PROP_SATURATION);
    Gain       = cap.get(CV_CAP_PROP_GAIN);
    Exposure   = cap.get(CV_CAP_PROP_AUTO_EXPOSURE ); 


    // Display Them 

    cout<<"===================================="<<endl;
    cout<<"Default Brightness -------> "<<Brightness<<endl;
    cout<<"Default Contrast----------> "<<Contrast<<endl;
    cout<<"Default Saturation--------> "<<Saturation<<endl;
    cout<<"Default Gain--------------> "<<Gain<<endl;
    cout<<"Default exp --------------> "<<Exposure<<endl; 
    cout<<"===================================="<<endl;


    // console adjustment for testing  

    cout << "\nFrame size : " << dWidth << " x " << dHeight << endl;
    int bright; 
    cout<< "\nbrightness level -100 - 100 " << endl; 
    cin>> bright;  
    cout <<"\nbrightness level: " <<bright <<endl; 

    namedWindow("Video"); //create a window called "MyVideo"


    for(;;) 
    {

        Mat frame;

        cap >> frame;   

        int x = 200;
        Sleep(x); 

        Mat imgH = frame + Scalar(0.0722*bright, 0.7152*bright, 0.7152*bright); // convert BGR to Luminance set to color space 


        char ch =waitKey(30); 
        sprintf(buffer, "C:\\pics\\image%d.jpg" ,c); 


        //save image frame 

        if (ch == 's'){


        cvWaitKey(10); 
        cout<< "new frame in window " <<buffer<<endl;  
        imshow("Video", imgH );
        imwrite(buffer, imgH); //  <-- this is not working!
        c++ ;
        }

        // Camera Properties 

        if (ch == 'p'){ 
           cap.set(CV_CAP_PROP_SETTINGS , 1 ); 
        }


        //Exit

        if (ch == 27){ 

            cout << "esc key is pressed by user" << endl;

            return 0;  
       }
     }

    return 0;
}