示例代码
#include <stdio.h>
#include "opencv2/opencv.hpp"
using namespace cv;
VideoCapture cam;
Mat frame;
int cameraInit()
{
cam.open(0);
if (!cam.isOpened())
{
printf("Can not open camera!\n");
return -1;
}
cam.set(CAP_PROP_FRAME_WIDTH, 1200);
cam.set(CAP_PROP_FRAME_HEIGHT, 700);
cam.read(frame);
printf("camera frame size:%d,%d\n", frame.cols, frame.rows);
return 0;
}
int main()
{
if (cameraInit() != 0)
{
printf("Camera error!\n");
return -1;
}
namedWindow("camera", WINDOW_FREERATIO);
namedWindow("after", WINDOW_FREERATIO);
Mat mask;
while (true)
{
cam.read(frame);
flip(frame, frame, 1);
imshow("camera", frame);
Mat frameHSV;
cvtColor(frame, frameHSV, COLOR_BGR2HSV);
inRange(frameHSV, Scalar(35, 43, 46), Scalar(77, 255, 255), mask);
Mat redBack = Mat::zeros(frame.size(), frame.type());
redBack = Scalar(0, 0, 255);
frame.copyTo(redBack, mask);
imshow("after", redBack);
if (waitKey(1) == '1')
{
break;
}
}
return 0;
}
运行效果