资源简介

VS2013下用OPENCV完成对圆轮廓获取后,计算圆面积和圆心位置

资源截图

代码片段和文件信息

#include
#include
#include
#include
#include
#include
using namespace cv;
using namespace std;
const int kvalue = 15;//双边滤波邻域大小
void main()
{
Mat image = imread(“1-1.bmp“);
Mat img = image.clone();
Mat grayimg;
Mat grayGlobalBinayThr;
Mat blackMask;

//画十字架
line(image cvPoint(1975 1200) cvPoint(1975 1600) CV_RGB(0 255 255) 8 CV_AA 0);
line(image cvPoint(1775 1400) cvPoint(2175 1400) CV_RGB(0 255 255) 8 CV_AA 0);
namedWindow(“1“ WINDOW_NORMAL);
imshow(“1“ image);

//图像灰度化
cvtColor(img grayimg cv::COLOR_RGB2GRAY);

//截取要处理的图像区域
Mat imgROI(grayimg Rect(850 330 3100 - 850 2470 - 330));

//二值化
threshold(imgROI grayGlobalBinayThr 100 255 0);
blackMask = ~grayGlobalBinayThr;//按位取反,得到轮胎为1,背景为0的二值图像

//计算轮胎面积
int area = countNonZero(blackMask);
printf(“%d\n“ area);
namedWindow(“2“ WINDOW_NORMAL);
imshow(“2“ blackMask);

//获取轮胎轮廓
vector< vector > contours;//轮廓点
vector hierarchy;
findContours(blackMask contours hierarchyCV_RETR_EXTERNAL CV_CHAIN_APPROX_NONEPoint());
Mat imageContours = Mat::zeros(blackMask.size() CV_8UC1);

//判断轮胎与中心位置偏差
for (int i = 0; i < contours.size(); i++)
{
drawContours(imageContours contours i Scalar(255) 1);
RotatedRect rect = minAreaRect(contours[i]);
int x = rect.center.x;
int y = rect.center.y;
if (abs(x - 1125) <= 10 & abs(y - 1070) <= 10)
{
printf(“OK“);
break;
}
printf(“%d\n“ x);
printf(“%d\n“ y);
printf(“\n“);
}

namedWindow(“3“ WINDOW_NORMAL);
imshow(“3“ imgROI);
waitKey();
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      87040  2016-11-28 15:18  计算面积提取圆心\Debug\计算面积提取圆心.exe

     文件     482012  2016-11-28 15:18  计算面积提取圆心\Debug\计算面积提取圆心.ilk

     文件    3403776  2016-11-28 15:18  计算面积提取圆心\Debug\计算面积提取圆心.pdb

     文件     822272  2016-11-28 15:18  计算面积提取圆心\计算面积提取圆心\Debug\vc120.idb

     文件    1855488  2016-11-28 15:18  计算面积提取圆心\计算面积提取圆心\Debug\vc120.pdb

     文件     314933  2016-11-28 15:18  计算面积提取圆心\计算面积提取圆心\Debug\源.obj

     文件       2849  2016-11-28 15:18  计算面积提取圆心\计算面积提取圆心\Debug\计算面积提取圆心.log

     文件        572  2016-11-28 15:18  计算面积提取圆心\计算面积提取圆心\Debug\计算面积提取圆心.tlog\cl.command.1.tlog

     文件      16312  2016-11-28 15:18  计算面积提取圆心\计算面积提取圆心\Debug\计算面积提取圆心.tlog\CL.read.1.tlog

     文件        336  2016-11-28 15:18  计算面积提取圆心\计算面积提取圆心\Debug\计算面积提取圆心.tlog\CL.write.1.tlog

     文件       2686  2016-11-28 15:18  计算面积提取圆心\计算面积提取圆心\Debug\计算面积提取圆心.tlog\link.command.1.tlog

     文件       5096  2016-11-28 15:18  计算面积提取圆心\计算面积提取圆心\Debug\计算面积提取圆心.tlog\link.read.1.tlog

     文件        320  2016-11-28 15:18  计算面积提取圆心\计算面积提取圆心\Debug\计算面积提取圆心.tlog\link.write.1.tlog

     文件        176  2016-11-28 15:18  计算面积提取圆心\计算面积提取圆心\Debug\计算面积提取圆心.tlog\计算面积提取圆心.lastbuildstate

     文件       1849  2016-11-28 15:36  计算面积提取圆心\计算面积提取圆心\源.cpp

     文件       4601  2016-11-25 20:30  计算面积提取圆心\计算面积提取圆心\计算面积提取圆心.vcxproj

     文件        944  2016-11-25 20:25  计算面积提取圆心\计算面积提取圆心\计算面积提取圆心.vcxproj.filters

     文件   18874368  2016-11-28 15:36  计算面积提取圆心\计算面积提取圆心.sdf

     文件       1018  2016-11-25 20:18  计算面积提取圆心\计算面积提取圆心.sln

    ..A..H.     23040  2016-11-28 15:36  计算面积提取圆心\计算面积提取圆心.v12.suo

     目录          0  2016-11-28 15:18  计算面积提取圆心\计算面积提取圆心\Debug\计算面积提取圆心.tlog

     目录          0  2016-11-28 15:18  计算面积提取圆心\计算面积提取圆心\Debug

     目录          0  2016-11-28 15:18  计算面积提取圆心\Debug

     目录          0  2016-11-29 12:50  计算面积提取圆心\计算面积提取圆心

     目录          0  2016-11-28 15:36  计算面积提取圆心

----------- ---------  ---------- -----  ----

             25899688                    25


评论

共有 条评论