屏蔽EdCircle代码,因为该部分代码使用导致程序闪退

master
bob.pan 4 years ago
parent 7ce963d99a
commit 26b7e4b118

@ -731,32 +731,37 @@ void ImageCompareModel::train(const vector<Mat>& vec)
float startX = originalMatWidth / 2.0 - max_circle_radii;//找最大圆外径,固定直径 float startX = originalMatWidth / 2.0 - max_circle_radii;//找最大圆外径,固定直径
float startY = originalMatHeight / 2.0 - max_circle_radii; float startY = originalMatHeight / 2.0 - max_circle_radii;
Rect rect(startX, startY, max_circle_radii * 2, max_circle_radii * 2);
if((startX+max_circle_radii*2)>=originalMat.cols || (startY+max_circle_radii*2)>originalMat.rows)
continue;
Rect rect(startX, startY, max_circle_radii * 2, max_circle_radii * 2);
Mat origianlCenterMat; Mat origianlCenterMat;
originalMat(rect).copyTo(origianlCenterMat); originalMat(rect).copyTo(origianlCenterMat);
EDCircles edCircles(origianlCenterMat); // EDCircles edCircles(origianlCenterMat);
std::vector<mCircle> circles = edCircles.getCircles(); // std::vector<mCircle> circles = edCircles.getCircles();
float rMax = 0; // float rMax = 0;
float rMaxInside = 0; // float rMaxInside = 0;
const int circlesSize = circles.size(); // const int circlesSize = circles.size();
for (int j = 0; j < circlesSize; ++j) // for (int j = 0; j < circlesSize; ++j)
{ // {
double radius = circles[j].r; // double radius = circles[j].r;
if (radius > rMax) // if (radius > rMax)
{ // {
rMax = radius; // rMax = radius;
} // }
} // }
for (int j = 0; j < circlesSize; ++j) // for (int j = 0; j < circlesSize; ++j)
{ // {
double radius = circles[j].r; // double radius = circles[j].r;
if (radius < rMax * MAX_INSIDE_RATIO && radius > rMax * MIN_INSIDE_RATIO) // if (radius < rMax * MAX_INSIDE_RATIO && radius > rMax * MIN_INSIDE_RATIO)
{ // {
insideCircleNumSum++; insideCircleNumSum++;
} // }
} // }
centerMatVec.push_back(origianlCenterMat); centerMatVec.push_back(origianlCenterMat);
tmpVec.push_back(vec[i]); tmpVec.push_back(vec[i]);

@ -132,7 +132,11 @@ Mat ImageProcess::DetectCircle(Mat srcImg, Mat background, Point2f& center, doub
CircleDetector cd; CircleDetector cd;
cd.setAlgoType(CircleDetector::PeakCircle); cd.setAlgoType(CircleDetector::PeakCircle);
if (cParam.CircleEdgeWidth <= 0)
cd.setEdgeWidth(1);
else
cd.setEdgeWidth(cParam.CircleEdgeWidth); cd.setEdgeWidth(cParam.CircleEdgeWidth);
if (cParam.CirclePolarity == 0) if (cParam.CirclePolarity == 0)
cd.setPolarity(Polarity::Black2White); cd.setPolarity(Polarity::Black2White);
else else

@ -22,9 +22,9 @@
#include "databasesql.h" #include "databasesql.h"
#include "lpCryptokey.h" #include "lpCryptokey.h"
#define VERSION_HUB "3.0.6.0" #define VERSION_HUB "3.0.6.1"
#define VERSION_ALG "3.0.1.4" #define VERSION_ALG "3.0.1.5"
#define UPDATE_TIME "2022-01-17" #define UPDATE_TIME "2022-03-03"
#pragma execution_character_set("utf-8") #pragma execution_character_set("utf-8")
#define MODEL_UI_ICON_NONE ":/image/no-img" #define MODEL_UI_ICON_NONE ":/image/no-img"

Loading…
Cancel
Save