直方图增强车辆检测-创新互联

场景

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名与空间、虚拟主机、营销软件、网站建设、长岭网站维护、网站推广。

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

代码

#include "opencv2/highgui/highgui.hpp"

#include "opencv2/imgproc/imgproc.hpp"

#include

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 > contours;

 vector 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 p_w_picpathRGB[3];

 split(srcImg, p_w_picpathRGB);

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

 {

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

 }

 merge(p_w_picpathRGB, 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;

}

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文名称:直方图增强车辆检测-创新互联
分享URL:http://scyanting.com/article/csijec.html