#include <opencv/cv.h>
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 "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;
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"
while(1)
{
Mat frame;
bool bFrame = cap.read(frame); // read a new frame from video
int x = 200;
Sleep(x);
if (!bFrame){
cout << "Cannot read a frame from video stream" << endl;
break;
}
Mat imgH = frame + Scalar(0.299*bright, 0.587*bright, 0.114*bright); // convert RGB to Luminance percieved
imshow("Video", imgH ); //show the frame in "Video" window with adjusted luminance value
char c =waitKey(30);
// Camera Properties
if (c == 'p'){
cap.set(CV_CAP_PROP_SETTINGS , 1 );
}
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 }
//Exit
if (c == 27){
cout << "esc key is pressed by user" << endl;
return 0;
}
}
return 0;
}