資源簡介
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?>?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? {
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\li
?????文件???????5096??2016-11-28?15:18??計算面積提取圓心\計算面積提取圓心\Debug\計算面積提取圓心.tlog\li
?????文件????????320??2016-11-28?15:18??計算面積提取圓心\計算面積提取圓心\Debug\計算面積提取圓心.tlog\li
?????文件????????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
評論
共有 條評論