• 大小: 18.29MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-06-19
  • 语言: 其他
  • 标签: opencv  图像处理  

资源简介

利用OpenCV求取图像多轮廓质心,并在输出图像上显示质心坐标 ⋅ opencv提取目标质心

资源截图

代码片段和文件信息


#include   
#include   
#include   
#include   


using namespace cv;
using namespace std;
Mat src;
Mat src_gray;
int thresh = 30;
int max_thresh = 255;

int main()
{
src = imread(“C:\\Users\\Administrator\\Desktop\\999.jpg“ CV_LOAD_IMAGE_COLOR);    //注意路径得换成自己的  
cvtColor(src src_gray CV_BGR2GRAY);//灰度化      
GaussianBlur(src src Size(3 3) 0.1 0 BORDER_DEFAULT);
blur(src_gray src_gray Size(3 3)); //滤波       
namedWindow(“image“ CV_WINDOW_AUTOSIZE);
//imshow(“image“ src);
moveWindow(“image“ 20 20);
//定义Canny边缘检测图像       
Mat canny_output;
vector > contours;
vector hierarchy;
//利用canny算法检测边缘       
Canny(src_gray canny_output thresh thresh * 3 3);
namedWindow(“canny“ 0);
imshow(“canny“ canny_output);
moveWindow(“canny“ 550 20);
//查找轮廓    
findContours(canny_output contours hierarchy CV_RETR_TREE CV_CHAIN_APPROX_SIMPLE Point(0 0));
//计算轮廓矩       
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);
rectangle(drawing boundingRect(contours.at(i)) cvScalar(0 255 0));
char tam[100];
printf(tam “(%0.0f%0.0f)“ mc[i].x mc[i].y);
cout << “U“ << mc[i].x << “V“ << mc[i].y << endl;
//////////////////////////////////////////
/*CString numstr;
numstr.Format((“%lf   %lf“) mc[i].x mc[i].y);
MessageBox(0numstr);*/
//////////////////////////////////
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;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-11-21 18:54  opencv求取多轮廓质心并在输出图像显示质心坐标\
     目录           0  2017-11-21 18:54  opencv求取多轮廓质心并在输出图像显示质心坐标\.vs\
     目录           0  2017-11-21 18:54  opencv求取多轮廓质心并在输出图像显示质心坐标\.vs\opencv求取多轮廓质心并在输出图像显示质心坐标\
     目录           0  2017-11-21 18:54  opencv求取多轮廓质心并在输出图像显示质心坐标\.vs\opencv求取多轮廓质心并在输出图像显示质心坐标\v14\
     文件       25088  2017-11-21 19:38  opencv求取多轮廓质心并在输出图像显示质心坐标\.vs\opencv求取多轮廓质心并在输出图像显示质心坐标\v14\.suo
     目录           0  2017-11-21 18:54  opencv求取多轮廓质心并在输出图像显示质心坐标\opencv求取多轮廓质心并在输出图像显示质心坐标\
     文件        2366  2017-11-21 19:35  opencv求取多轮廓质心并在输出图像显示质心坐标\opencv求取多轮廓质心并在输出图像显示质心坐标\main.cpp
     文件        7433  2017-11-21 18:56  opencv求取多轮廓质心并在输出图像显示质心坐标\opencv求取多轮廓质心并在输出图像显示质心坐标\opencv求取多轮廓质心并在输出图像显示质心坐标.vcxproj
     文件         945  2017-11-21 18:56  opencv求取多轮廓质心并在输出图像显示质心坐标\opencv求取多轮廓质心并在输出图像显示质心坐标\opencv求取多轮廓质心并在输出图像显示质心坐标.vcxproj.filters
     目录           0  2017-11-21 18:56  opencv求取多轮廓质心并在输出图像显示质心坐标\opencv求取多轮廓质心并在输出图像显示质心坐标\x64\
     目录           0  2017-11-21 18:56  opencv求取多轮廓质心并在输出图像显示质心坐标\opencv求取多轮廓质心并在输出图像显示质心坐标\x64\Debug\
     文件      575657  2017-11-21 19:35  opencv求取多轮廓质心并在输出图像显示质心坐标\opencv求取多轮廓质心并在输出图像显示质心坐标\x64\Debug\main.obj
     目录           0  2017-11-21 18:56  opencv求取多轮廓质心并在输出图像显示质心坐标\opencv求取多轮廓质心并在输出图像显示质心坐标\x64\Debug\opencv求取.AEF3CCBB.tlog\
     文件         694  2017-11-21 19:35  opencv求取多轮廓质心并在输出图像显示质心坐标\opencv求取多轮廓质心并在输出图像显示质心坐标\x64\Debug\opencv求取.AEF3CCBB.tlog\CL.command.1.tlog
     文件       42330  2017-11-21 19:35  opencv求取多轮廓质心并在输出图像显示质心坐标\opencv求取多轮廓质心并在输出图像显示质心坐标\x64\Debug\opencv求取.AEF3CCBB.tlog\CL.read.1.tlog
     文件         644  2017-11-21 19:35  opencv求取多轮廓质心并在输出图像显示质心坐标\opencv求取多轮廓质心并在输出图像显示质心坐标\x64\Debug\opencv求取.AEF3CCBB.tlog\CL.write.1.tlog
     文件        1412  2017-11-21 19:35  opencv求取多轮廓质心并在输出图像显示质心坐标\opencv求取多轮廓质心并在输出图像显示质心坐标\x64\Debug\opencv求取.AEF3CCBB.tlog\link.command.1.tlog
     文件        3752  2017-11-21 19:35  opencv求取多轮廓质心并在输出图像显示质心坐标\opencv求取多轮廓质心并在输出图像显示质心坐标\x64\Debug\opencv求取.AEF3CCBB.tlog\link.read.1.tlog
     文件         630  2017-11-21 19:35  opencv求取多轮廓质心并在输出图像显示质心坐标\opencv求取多轮廓质心并在输出图像显示质心坐标\x64\Debug\opencv求取.AEF3CCBB.tlog\link.write.1.tlog
     文件         238  2017-11-21 19:35  opencv求取多轮廓质心并在输出图像显示质心坐标\opencv求取多轮廓质心并在输出图像显示质心坐标\x64\Debug\opencv求取.AEF3CCBB.tlog\opencv求取多轮廓质心并在输出图像显示质心坐标.lastbuildstate
     文件        1635  2017-11-21 19:35  opencv求取多轮廓质心并在输出图像显示质心坐标\opencv求取多轮廓质心并在输出图像显示质心坐标\x64\Debug\opencv求取多轮廓质心并在输出图像显示质心坐标.log
     文件      691200  2017-11-21 19:35  opencv求取多轮廓质心并在输出图像显示质心坐标\opencv求取多轮廓质心并在输出图像显示质心坐标\x64\Debug\vc140.idb
     文件     1445888  2017-11-21 19:35  opencv求取多轮廓质心并在输出图像显示质心坐标\opencv求取多轮廓质心并在输出图像显示质心坐标\x64\Debug\vc140.pdb
     文件    49381376  2017-11-21 19:38  opencv求取多轮廓质心并在输出图像显示质心坐标\opencv求取多轮廓质心并在输出图像显示质心坐标.VC.db
     文件        1471  2017-11-21 18:54  opencv求取多轮廓质心并在输出图像显示质心坐标\opencv求取多轮廓质心并在输出图像显示质心坐标.sln
     目录           0  2017-11-21 18:56  opencv求取多轮廓质心并在输出图像显示质心坐标\x64\
     目录           0  2017-11-21 18:56  opencv求取多轮廓质心并在输出图像显示质心坐标\x64\Debug\
     文件      154112  2017-11-21 19:35  opencv求取多轮廓质心并在输出图像显示质心坐标\x64\Debug\opencv求取多轮廓质心并在输出图像显示质心坐标.exe
     文件      688580  2017-11-21 19:35  opencv求取多轮廓质心并在输出图像显示质心坐标\x64\Debug\opencv求取多轮廓质心并在输出图像显示质心坐标.ilk
     文件     2027520  2017-11-21 19:35  opencv求取多轮廓质心并在输出图像显示质心坐标\x64\Debug\opencv求取多轮廓质心并在输出图像显示质心坐标.pdb

评论

共有 条评论