-
大小: 4.16MB文件類(lèi)型: .rar金幣: 2下載: 0 次發(fā)布日期: 2023-08-10
- 語(yǔ)言: C/C++
- 標(biāo)簽: Wong-Trinder??圓心定位??C++??OPENCV??
資源簡(jiǎn)介
采用基于opencv249的C++編寫(xiě),Wong-Trinder圓點(diǎn)定位算子

代碼片段和文件信息
//?CenterLocation.cpp?:?定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。
#include?“stdafx.h“
#include???
#include?
#include?
using?namespace?std;
using?namespace?cv;
//1.構(gòu)造函數(shù)m,用于求解p+q階原點(diǎn)矩mpq
int?m_(int?iint?jint?p?int?q?int?b)
{
double?res?=?0;
res?+=?pow(double(i)?p)?*?pow(double(j)?q)?*?b;
return?res;
}
//2.構(gòu)造函數(shù)M,用于求解p+q階中心矩Mpq
int?M_(int?iint?jdouble?xdouble?yint?p?int?q?int?b)
{
double?res?=?0;
res?+=?pow(i-x?p)?*?pow(j-y?q)?*?b;
return?res;
}
//3.主函數(shù),對(duì)圓心(xy)、圓度r進(jìn)行求解
int?main(void)
{
//3.1讀取數(shù)據(jù)
????IplImage?*?imgSrc?=?cvLoadImage(“circle1.jpg“);//讀取三通道圖像數(shù)據(jù)(RGB)
IplImage*?imggray?=?cvCreateImage(cvGetSize(imgSrc)?IPL_DEPTH_8U?1);//申請(qǐng)一段內(nèi)存??
cvCvtColor(imgSrc?imggray?CV_BGR2GRAY);?//灰度化
cvSaveImage(“RGBtoGray1.jpg“imggray);//保存灰度化后的圖像文件
int?height?=?imgSrc->height;//獲取圖像的高和寬
int?width?=?imgSrc->width;
//3.2計(jì)算閾值T?
CvScalar?pixel;//定義數(shù)組
int?g[100][100]w[100][100];
int?min?=?256;double?Average?=?0;
for?(int?i?=?0;?i????{
???????for?(int?j?=?0;?j?????????{
pixel?=?cvGet2D(imgSrc?i?j);
if(pixel.val[0]? min?=?int(pixel.val[0]);
Average?+=?pixel.val[0];
g[i][j]?=?int(pixel.val[0]);
w[i][j]?=?int(pixel.val[0]);
?????????}
????}
Average?=?Average/(width*height);
double?T?=?(min?+?Average)?*?0.5;//計(jì)算出閾值
//3.3圖像二值化并計(jì)算坐標(biāo)(xy)
int?m00?=?0m10?=?0m01?=?0;
for?(int?i?=?0;?i? {
for?(int?j?=?0;?j? {
if(g[i][j]>T)?g[i][j]?=?1;//圖像二值化
else?g[i][j]?=?0;
m00?+=?m_(ij00g[i][j]);
m10?+=?m_(ij10g[i][j]);
m01?+=?m_(ij01g[i][j]);
?}
}
double?x?=?m10/(m00?*?1.0)y?=?m01?/?(m00?*?1.0);
//3.4計(jì)算Mx、My、圓度r
double?M20?=?0M02?=?0M11?=?0M?=?0x_=0y_=0;
for?(int?i?=?0;?i? {
for?(int?j?=?0;?j? {
M20?+=?M_(ijxy20g[i][j]);
M02?+=?M_(ijxy02g[i][j]);?
M11?+=?M_(ijxy11g[i][j]);
x_?+=?i?*?g[i][j]?*?w[i][j];
y_?+=?j?*?g[i][j]?*?w[i][j];
M?+=?g[i][j]?*?w[i][j];
?}
}
double?Mx?=?(M20?+?M02)?/?2.0?+?sqrt(M11?*?M11?+?0.5?*?(M20?-?M02)?*?0.5?*?(M20?-?M02));
double?My?=?(M20?+?M02)?/?2.0?-?sqrt(M11?*?M11?+?0.5?*?(M20?-?M02)?*?0.5?*?(M20?-?M02));
double?r?=?Mx?/?My;
//3.5使用Trinder算子計(jì)算改進(jìn)后的xy
x_?*=?1?/?M;
y_?*=?1?/?M;
//3.6輸出結(jié)果
cout<<“最小灰度值min=“< cout<<“中間量:“<<“\n“<<“m10=“< cout<<“Mx=“<
//3.7保存到文件
ofstream?SaveFile(“結(jié)果1.txt“);
SaveFile<<“最小灰度值min=“< SaveFile<<“中間量:“<<“\n“<<“m10=“<
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件???????3706??2017-10-12?19:58??CenterLocation\CenterLocation\CenterLocation.cpp
?????文件???????4380??2017-10-09?19:07??CenterLocation\CenterLocation\CenterLocation.vcxproj
?????文件???????1318??2017-10-09?19:07??CenterLocation\CenterLocation\CenterLocation.vcxproj.filters
?????文件????????143??2017-10-09?19:07??CenterLocation\CenterLocation\CenterLocation.vcxproj.user
?????文件??????22611??2013-09-26?14:39??CenterLocation\CenterLocation\circle1.jpg
?????文件??????25171??2013-09-26?14:38??CenterLocation\CenterLocation\circle2.jpg
?????文件???????2897??2017-10-12?19:38??CenterLocation\CenterLocation\Debug\CenterLocation.Build.CppClean.log
?????文件????????406??2017-10-12?19:38??CenterLocation\CenterLocation\Debug\CenterLocation.exe.em
?????文件????????472??2017-10-12?19:38??CenterLocation\CenterLocation\Debug\CenterLocation.exe.em
?????文件????????381??2017-10-12?19:58??CenterLocation\CenterLocation\Debug\CenterLocation.exe.intermediate.manifest
?????文件?????????75??2017-10-12?19:58??CenterLocation\CenterLocation\Debug\CenterLocation.lastbuildstate
?????文件???????4043??2017-10-12?19:58??CenterLocation\CenterLocation\Debug\CenterLocation.log
?????文件?????412611??2017-10-12?19:58??CenterLocation\CenterLocation\Debug\CenterLocation.obj
?????文件????1179648??2017-10-12?19:38??CenterLocation\CenterLocation\Debug\CenterLocation.pch
?????文件??????????0??2017-10-12?19:38??CenterLocation\CenterLocation\Debug\CenterLocation.write.1.tlog
?????文件????????218??2017-10-12?19:38??CenterLocation\CenterLocation\Debug\CenterLocation_manifest.rc
?????文件???????2290??2017-10-12?19:58??CenterLocation\CenterLocation\Debug\cl.command.1.tlog
?????文件??????20826??2017-10-12?19:58??CenterLocation\CenterLocation\Debug\CL.read.1.tlog
?????文件???????1020??2017-10-12?19:58??CenterLocation\CenterLocation\Debug\CL.write.1.tlog
?????文件??????????2??2017-10-12?19:58??CenterLocation\CenterLocation\Debug\li
?????文件??????????2??2017-10-12?19:58??CenterLocation\CenterLocation\Debug\li
?????文件??????????2??2017-10-12?19:58??CenterLocation\CenterLocation\Debug\li
?????文件??????????2??2017-10-12?19:58??CenterLocation\CenterLocation\Debug\li
?????文件??????????2??2017-10-12?19:58??CenterLocation\CenterLocation\Debug\li
?????文件??????????2??2017-10-12?19:58??CenterLocation\CenterLocation\Debug\li
?????文件???????2854??2017-10-12?19:58??CenterLocation\CenterLocation\Debug\li
?????文件???????6424??2017-10-12?19:58??CenterLocation\CenterLocation\Debug\li
?????文件???????1082??2017-10-12?19:58??CenterLocation\CenterLocation\Debug\li
?????文件????????450??2017-10-12?19:58??CenterLocation\CenterLocation\Debug\mt.command.1.tlog
?????文件????????394??2017-10-12?19:58??CenterLocation\CenterLocation\Debug\mt.read.1.tlog
............此處省略28個(gè)文件信息
評(píng)論
共有 條評(píng)論