Created
March 4, 2016 14:36
-
-
Save companje/0ab635af72b7d0ef4421 to your computer and use it in GitHub Desktop.
Logitech C920 with IR blocker removed and red filter added. OpenCV code using BackgroundSubtractorMOG2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <opencv2/opencv.hpp> | |
#include <iostream> | |
#include <vector> | |
using namespace cv; | |
int | |
main (int argc, char *argv[]) | |
{ | |
cv::Mat frame; | |
cv::Mat back; | |
cv::Mat fore; | |
cv::VideoCapture cap(0); | |
cap.set(CV_CAP_PROP_FRAME_WIDTH, 640); | |
cap.set(CV_CAP_PROP_FRAME_HEIGHT, 480); | |
// cap.set(CV_CAP_PROP_AUTO_EXPOSURE, 0); | |
// cap.set(CV_CAP_PROP_EXPOSURE, 2); | |
cv::BackgroundSubtractorMOG2 bg; | |
bg.set ("nmixtures", 3); | |
//bg.bShadowDetection = false; | |
std::vector < std::vector < cv::Point > >contours; | |
namedWindow("b"); | |
namedWindow("g"); | |
namedWindow("r"); | |
namedWindow("rgb"); | |
resizeWindow("rgb",640,480); | |
resizeWindow("r",640,480); | |
resizeWindow("g",640,480); | |
resizeWindow("b",640,480); | |
moveWindow("rgb", 0, 0); | |
moveWindow("r", 640, 0); | |
moveWindow("g", 0, 530); | |
moveWindow("b", 640, 530); | |
cv::Mat bgr[3]; //destination array | |
for (;;) | |
{ | |
cap >> frame; | |
Mat blue(frame.size(),frame.type()); | |
vector<Mat> bgr; | |
split(frame, bgr); | |
cvtColor(bgr[0],blue,CV_GRAY2RGB); | |
bg.operator()(blue, fore); | |
bg.getBackgroundImage(back); | |
cv::erode (fore, fore, cv::Mat ()); | |
cv::dilate (fore, fore, cv::Mat ()); | |
cv::findContours (fore, contours, CV_RETR_EXTERNAL, | |
CV_CHAIN_APPROX_NONE); | |
cv::drawContours (blue, contours, -1, cv::Scalar (0, 0, 255), 2); | |
imshow("rgb", frame); | |
imshow("b", blue); | |
imshow("g", bgr[1]); | |
imshow("r", bgr[2]); | |
cv::cvtColor(bgr[0],frame,CV_GRAY2RGB); | |
if (cv::waitKey (30) >= 0) | |
break; | |
} | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment