资源简介
积分最低,车标检测,检测轮廓出来,粗定位和精定位提取车标,基于vs2013+opencv的方法

代码片段和文件信息
#include “cv.h“
#include “highgui.h“
#include
#include
#include
using namespace std;
using namespace cv;
Mat src;
Mat src_gray;
int thresh = 100;
int max_thresh = 255;
RNG rng(12345);
void thresh_callback(int void*);
int main(int argc char** argv)
{
src = imread(“1.jpg“ 1);
cvtColor(src src_gray CV_BGR2GRAY);
blur(src_gray src_gray Size(3 3));
char* source_window = “Source“;
namedWindow(source_window CV_WINDOW_AUTOSIZE);
imshow(source_window src);
createTrackbar(“Threshold:“ “Source“ &thresh max_thresh thresh_callback);
thresh_callback(0 0);
waitKey(0);
return 0;
}
void thresh_callback(int void*)
{
Mat threshold_output;
vector> contours;
vector hierarchy;
//Canny(src_gray canny_Mat thresh thresh * 2 3);
/// 使用Threshold检测边缘
threshold(src_gray threshold_output thresh 255 THRESH_BINARY);
findContours(threshold_output contours hierarchyCV_RETR_TREECV_CHAIN_APPROX_SIMPLE Point(0 0));
/// 多边形逼近轮廓 + 获取矩形和圆形边界框
vector>contours_poly(contours.size());
vector bondRect(contours.size());
vectorcenter(contours.size());
vectorradius(contours.size());
vector>::iterator iter = contours.begin();
for (int i = 0; i < contours.size(); i++)
{
approxPolyDP(Mat(contours[i]) contours_poly[i] 3 true);
bondRect[i] = boundingRect(Mat(contours[i]));
minEnclosingCircle(contours[i] center[i] radius[i]);
}
/// 画多边形轮廓 + 包围的矩形框 + 圆形框
Mat drawing = Mat::zeros(threshold_output.size() CV_8UC3);
for (int i = 0; i < contours.size(); i++)
{
Scalar color = Scalar(rng.uniform(0 255) rng.uniform(0 255) rng.uniform(0 255));
drawContours(src contours i color 1 8 hierarchy 0 Point());
drawContours(drawing contours_poly i color 1 8 vector() 0 Point());
if (bondRect[i].area() > 50 && bondRect[i].width < 50 && bondRect[i].height < 50)
{
rectangle(drawing bondRect[i].tl() bondRect[i].br() color 2 8 0);
// circle(drawing center[i] (int)radius[i] color 2 8 0);
}
}
namedWindow(“contours“ CV_WINDOW_AUTOSIZE);
imshow(“contours“ drawing);
namedWindow(“contours_src“ CV_WINDOW_AUTOSIZE);
imshow(“contours_src“ src);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2421 2018-05-09 21:00 vehicle detecting.cpp
- 上一篇:西门子plc三层电梯梯形图
- 下一篇:labview的电池管理系统
相关资源
- 基于OpenCV的数字识别468815
- 使用opencv去掉二值化图像中黑色面积
- opencv环境配置
- win10 64位下编译的opencv4.5.5库,opencv
- NVIDIAOpticalFlowSDK-79c6cee80a2df9a196f20afd6
- opencv_contrib-3.4.0.zip
- opencv2.4.9源码分析——SIFT
- 用两个摄像头实现,双目标定,双目
- opencv_traincascade训练分类器,手势识别
- opencv3.0交叉编译用parallel.cpp
- 基于opencv的图像识别识别图像中的色
- 基于openCV的识别特定颜色区域
- 基于OpenCV的分水岭算法实现
- QT+opencv+OCR 身份证号码,银行卡号识别
- opencv视频特定颜色区域识别
- 把RGB转换为HSV和HSI然后根据黄色和蓝
- opencv视觉测距
- 基于Qt和opencv的身份证号码识别系统
- opencv_ffmpeg249.dll
- SfM稀疏三维点云重建--完整工程文件
- 基于opencv的数人头程序源代码
- 利用OpenCV中的Stitcher类实现全景图像拼
- opencv实现的sift算法源码,包含了图像
- openCV 上的小波变换
- 基于OPENCV的车牌识别系统设计
- 617张国内车牌60-17bmp图片用于OpenCV正样
- hog特征提取,c版本代码
- 基于Qt5.8+OpenCV3.2的Basler多相机触发开
- 基于Opencv实现的图像纠偏
- ImageWatch2019.vsix
评论
共有 条评论