资源简介
程序目的是对传送带上物件的定位,需要提取物件坐标。主要运用Opencv中的寻找轮廓函数findContours()作为程序核心,为了杂质的干扰,处理高斯滤波,做了一个轮廓面积的计算,来去除杂质
代码片段和文件信息
#include
#include
#include
#include
using namespace cv;
using namespace std;
Mat src;
Mat src_gray;
int thresh = 30;
int main()
{
src = imread(“3.jpg“ 1);
cvtColor(src src_gray CV_BGR2GRAY);//灰度化
Mat src_dstImage;
//Mat src_s;
GaussianBlur(src_gray src_dstImage Size(5 5) 0.0 0 BORDER_DEFAULT);
namedWindow(“image“ CV_WINDOW_AUTOSIZE);
imshow(“image“ src);
moveWindow(“image“ 20 20);
//定义Canny边缘检测图像
Mat canny_output;
vector > contours;
vector hierarchy;
//利用canny算法检测边缘
Canny(src_dstImage canny_output thresh thresh * 3 3);
Mat element = getStructuringElement(MORPH_RECT Size(2 2));
dilate(canny_output canny_output element);
namedWindow(“canny“ CV_WINDOW_AUTOSIZE);
imshow(“canny“ canny_output);
moveWindow(“canny“ 550 20);
//查找轮廓
findContours(canny_output contours hierarchy CV_RETR_EXTERNAL CV_CHAIN_APPROX_SIMPLE Point(0 0));
vector>::iterator iter = contours.begin();
for (; iter != contours.end(); )
{
double g_dConArea = contourArea(*iter);
if (g_dConArea < 500)
{
iter = contours.erase(iter);//删除目标元素
}
else
{
++iter;
}
}
cout << “筛选后总共轮廓个数为:“ << (int)contours.size() << endl;
//计算轮廓矩
vector mu(contours.size());
for (int i = 0; i < contours.size(); i++)
{
mu[i] = moments(contours[i] false);
}
//计算轮廓的质心
vector mc(contours.size());
for (int i = 0; i < contours.size(); i++)
{
mc[i] = Point2d(mu[i].m10 / mu[i].m00 mu[i].m01 / mu[i].m00);
}
//画轮廓及其质心并显示
Mat drawing = Mat::zeros(canny_output.size() CV_8UC3);//创建一个绘制的背景图
for (int i = 0; i< contours.size(); i++)
{
Scalar color = Scalar(255 0 0);
drawContours(drawing contours i color 2 8 hierarchy 0 Point());//绘制外层和内层轮廓
circle(drawing mc[i] 5 Scalar(0 0 255) -1 8 0);//绘制圆
//boundingRect()返回指定点集最外面的矩形边界
rectangle(drawing boundingRect(contours.at(i)) cvScalar(0 255 0));
char tam[100];
sprintf(tam “(%0.0f%0.0f)“ mc[i].x mc[i].y);
/*printf(“(%0.0f%0.0f)“ mc[i].x mc[i].y);*/
cout << tam << endl;
putText(drawing tam Point(mc[i].x mc[i].y) FONT_HERSHEY_SIMPLEX 0.4 cvScalar(255 0 255) 1);
}
namedWindow(“Contours“ CV_WINDOW_AUTOSIZE);
imshow(“Contours“ drawing);
moveWindow(“Contours“ 1100 20);
waitKey(0);
src.release();
src_gray.release();
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 134144 2017-11-13 09:56 moments_center\Debug\moments_center.exe
文件 1021500 2017-11-13 09:56 moments_center\Debug\moments_center.ilk
文件 3910656 2017-11-13 09:56 moments_center\Debug\moments_center.pdb
文件 26262 2017-11-08 20:21 moments_center\moments_center\1.jpg
文件 235557 2017-11-09 21:32 moments_center\moments_center\3.JPG
文件 586574 2017-11-13 09:56 moments_center\moments_center\Debug\main.obj
文件 9782 2017-11-13 09:56 moments_center\moments_center\Debug\moments_center.log
文件 1412 2017-11-13 09:56 moments_center\moments_center\Debug\moments_center.tlog\cl.command.1.tlog
文件 18770 2017-11-13 09:56 moments_center\moments_center\Debug\moments_center.tlog\CL.read.1.tlog
文件 692 2017-11-13 09:56 moments_center\moments_center\Debug\moments_center.tlog\CL.write.1.tlog
文件 13848 2017-11-13 09:56 moments_center\moments_center\Debug\moments_center.tlog\li
文件 30972 2017-11-13 09:56 moments_center\moments_center\Debug\moments_center.tlog\li
文件 670 2017-11-13 09:56 moments_center\moments_center\Debug\moments_center.tlog\li
文件 189 2017-11-13 09:56 moments_center\moments_center\Debug\moments_center.tlog\moments_center.lastbuildstate
文件 535552 2017-11-13 09:56 moments_center\moments_center\Debug\vc120.idb
文件 978944 2017-11-13 09:56 moments_center\moments_center\Debug\vc120.pdb
文件 2669 2017-11-13 20:26 moments_center\moments_center\main.cpp
文件 4025 2017-11-08 22:52 moments_center\moments_center\moments_center.vcxproj
文件 945 2017-11-08 22:52 moments_center\moments_center\moments_center.vcxproj.filters
文件 1501171 2017-11-08 23:04 moments_center\moments_center\Release\main.obj
文件 7569 2017-11-08 23:16 moments_center\moments_center\Release\moments_center.log
文件 1432 2017-11-08 23:04 moments_center\moments_center\Release\moments_center.tlog\cl.command.1.tlog
文件 18636 2017-11-08 23:04 moments_center\moments_center\Release\moments_center.tlog\CL.read.1.tlog
文件 524 2017-11-08 23:04 moments_center\moments_center\Release\moments_center.tlog\CL.write.1.tlog
文件 13940 2017-11-08 23:16 moments_center\moments_center\Release\moments_center.tlog\li
文件 31666 2017-11-08 23:16 moments_center\moments_center\Release\moments_center.tlog\li
文件 518 2017-11-08 23:16 moments_center\moments_center\Release\moments_center.tlog\li
文件 191 2017-11-08 23:16 moments_center\moments_center\Release\moments_center.tlog\moments_center.lastbuildstate
文件 831488 2017-11-08 23:04 moments_center\moments_center\Release\vc120.pdb
文件 14221312 2017-11-13 20:26 moments_center\moments_center.sdf
............此处省略15个文件信息
- 上一篇:Um接口协议---LapDm协议
- 下一篇:方正商祺系列bios升级包
相关资源
-
OpenCV生成xm
l分类器文件 - Linux下QT及OpenCV搭建
- 张正友相机标定(OpenCV实现)223402
- Adaboost人头部检测 opencv vc
- OpenCv+Ocr 图片文字识别源码
- 于老师的人脸识别VS2015工程
- opencv相机检校
- 车型识别系统vc源码opencv
- opencv依靠颜色识别和跟踪物体
- OpenCV的PCA人脸识别
- openCV+qt视频传输
- OpenCV 现实高斯金字塔的源码,非常经
- opencv运动目标检测与跟踪源代码
- labview与Opencv 人眼识别
- opencv 将两幅等宽图像拼接在一起
- 图像分类代码
- OpenCV 1.0.0 patch for ffmpeg errors
- 车辆分类检测正负样本共计1000张
- 使用Visual Studio+OpenCV进行的Susan算子边
- 跟踪特征点并画AR物体
- 别踩白块 毕业论文
- 支持OpenCV3.2的opencv_ffmpeg.7z
- openCVSharp Unity3d
- 彩色图像的SVM分割,Opencv实现
- OpenCV2.31库
- Delphi的OpenCV头文件和
- OpenCV 3 Blueprints.pdf[382页可复制]
- 基于opencv接口的深度学习人脸检测代
- 基于opencv的b样条实现
- 北京大学的OPENCV课程PPT_田永鸿
评论
共有 条评论