• 大小: 4.33MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-29
  • 语言: 其他
  • 标签: Opencv  

资源简介

程序目的是对传送带上物件的定位,需要提取物件坐标。主要运用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\link.command.1.tlog

     文件      30972  2017-11-13 09:56  moments_center\moments_center\Debug\moments_center.tlog\link.read.1.tlog

     文件        670  2017-11-13 09:56  moments_center\moments_center\Debug\moments_center.tlog\link.write.1.tlog

     文件        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\link.command.1.tlog

     文件      31666  2017-11-08 23:16  moments_center\moments_center\Release\moments_center.tlog\link.read.1.tlog

     文件        518  2017-11-08 23:16  moments_center\moments_center\Release\moments_center.tlog\link.write.1.tlog

     文件        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个文件信息

评论

共有 条评论