车辆监控应用

时间:2017-05-16 17:34:12

标签: opencv computer-vision

我正在开发一个使用opencv监控实时车辆流量的应用程序,用c ++。

目前,我正在做背景减法方法以获得背景,然后我找到轮廓。

我使用createBackgroundSubtractorGMG方法来查找bg。

我面临的问题是在夜间,当车辆的前照灯打开时。道路上的照明区域也被检测为新的交通。有什么办法可以解决这个问题,还是我选择了一种完全错误的流量监控方法?

我遵循的流量检测方法如下,

空洞检测(Mat Frame){

Mat bg;
vector<Mat> Channels(3);
vector<Mat> channels;
cvtColor(frame,bg,CV_BGR2YCrCb);
split(bg,Channels);
equalizeHist(Channels[0], Channels[0]);
equalizeHist(Channels[1], Channels[1]);
channels.push_back(Channels[0]);     
channels.push_back(Channels[1]);     
channels.push_back(Channels[2]);     
cv::merge(channels, bg);
cv::GaussianBlur(bg, bg, cv::Size(5,5), 1.5);
pMOG->apply(bg, fore);
cv::GaussianBlur(fore, fore, cv::Size(11,11), 1.5);
findContours(fore,contours,CV_RETR_EXTERNAL,CV_CHAIN_APPROX_SIMPLE);
vector<vector<Point> > contours_poly(contours.size());
vector<Rect> boundRect(contours.size());
double area;
bool found;
for(size_t i = 0; i < contours.size(); i++ )
{
    boundRect[i] = boundingRect( Mat(contours[i]) );
}

}

Image

0 个答案:

没有答案