直方图增强 车辆检测

简介:

场景

    尝试使用直方图对图像进行增强,然后使用二值化函数,分割出车辆的轮廓,显然这个在应对道路和车辆颜色相近的情况下,即使不是相近,依旧没有达到任何的效果

代码


#include "opencv2/highgui/highgui.hpp"

#include "opencv2/imgproc/imgproc.hpp"

#include <iostream>

using namespace cv;

using namespace std;


Mat srcImg;


void on_trackbar(int pos)

{

  Mat contourImg ;

  srcImg.copyTo(contourImg);

  Mat graysrcImg = Mat::zeros(srcImg.rows, srcImg.cols, CV_8UC3);

  threshold(srcImg, graysrcImg, pos, 255, 3);

  vector<vector<Point> > contours;

  vector<Vec4i> hierarchy;

  Mat dst = Mat::zeros(srcImg.rows, srcImg.cols, CV_8UC3);

  findContours(graysrcImg, contours,hierarchy, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE);

  if( !contours.empty() && !hierarchy.empty() )

  {

    int idx = 0;

    for( ; idx >= 0; idx = hierarchy[idx][0] )

    {

      if (contourArea(contours[idx]) < 500000)  continue;


      Scalar color( (rand()&255), (rand()&255), (rand()&255) );

      drawContours( contourImg, contours, idx, Scalar(255, 0, 0), CV_FILLED, 8, hierarchy );

    }

  }

  imshow( "FindContour", contourImg );

}


int main()

{

  const char* srcImgFile = "D:/20170601092226.png";

  srcImg = imread(srcImgFile);

  if (srcImg.empty()) return -1;


  Mat imageRGB[3];  

  split(srcImg, imageRGB);  

  for (int i = 0; i < 3; i++)  

  {  

    equalizeHist(imageRGB[i], imageRGB[i]);  

  }  

  merge(imageRGB, 3, srcImg);  

  imshow("直方图均衡化图像增强效果", srcImg);  

  cvtColor( srcImg, srcImg, CV_RGB2GRAY );

  namedWindow("srcImg", 1);

  imshow("srcImg", srcImg);


  int nThreshold = 0;

  namedWindow("FindContour", 1);

  cvCreateTrackbar("bar", "FindContour", &nThreshold, 254, on_trackbar);


  on_trackbar(1);

 

  waitKey(0);

  return 0;

}

    本文转自fengyuzaitu 51CTO博客,原文链接:http://blog.51cto.com/fengyuzaitu/1881046,如需转载请自行联系原作者






相关文章
|
2月前
标定系列三、9点标定实际应用场景分析
标定系列三、9点标定实际应用场景分析
|
3月前
|
传感器 算法 数据处理
yolo目标检测+目标跟踪+车辆计数+车辆分割+车道线变更检测+速度估计
yolo目标检测+目标跟踪+车辆计数+车辆分割+车道线变更检测+速度估计
77 0
|
3月前
|
机器学习/深度学习 传感器 算法
目标检测+车道线识别+追踪+测距(代码+部署运行)
目标检测+车道线识别+追踪+测距(代码+部署运行)
74 0
|
3月前
|
机器学习/深度学习 监控 并行计算
yolov5 deepsort 行人/车辆(检测 +计数+跟踪+测距+测速)
yolov5 deepsort 行人/车辆(检测 +计数+跟踪+测距+测速)
211 1
|
4月前
|
传感器
工程监测中振弦采集仪的精度校正与误差分析
工程监测中振弦采集仪的精度校正与误差分析 工程监测中,振弦采集仪是一种常用的测量设备,用于测量结构物的振动情况。为确保测量结果的准确性,需要对振弦采集仪进行精度校正和误差分析。
工程监测中振弦采集仪的精度校正与误差分析
|
10月前
|
传感器 存储 编解码
使用激光雷达数据构建地图并使用SLAM算法估计车辆轨迹
使用激光雷达数据构建地图并使用SLAM算法估计车辆轨迹。
142 0
|
11月前
|
计算机视觉
Mediapipe三维实时人体关键点检测与追踪(二)
Mediapipe三维实时人体关键点检测与追踪(二)
414 0
|
11月前
|
机器学习/深度学习 JavaScript 前端开发
Mediapipe三维实时人体关键点检测与追踪(一)
Mediapipe三维实时人体关键点检测与追踪(一)
828 0
|
11月前
|
机器学习/深度学习 传感器 自动驾驶
基于模型预测控制的车辆轨迹跟踪问题附MATLAB代码
基于模型预测控制的车辆轨迹跟踪问题附MATLAB代码
|
12月前
|
机器学习/深度学习 传感器 算法
【图像检测-车辆检测】基于YOLO实现车辆目标检测附matlab代码
【图像检测-车辆检测】基于YOLO实现车辆目标检测附matlab代码