= 11)
{
break;
}
}
}
sum_1 = learn*s1*sum_1;
sum_2 = learn*s1*sum_2;
sum_3 = learn*s1*sum_3;
sum_4 = learn*s1*sum_4;
sum_5 = learn*s1*sum_5;
// 更新 参数theta
X0 = X0 - sum_1;
Y0 = Y0 - sum_2;
a = a - sum_3;
b = b - sum_4;
theta = theta + sum_5;
cout
{
for(int j = 25; jwidth()-10; j++)
{
/*
float y = sqrtf(b*b - ((b*b)/(a*a))*(j-X0)*(j-X0)) + Y0;
y1 = Y0 - sqrtf(b*b - ((b*b)/(a*a))*(j-X0)*(j-X0));
sum_0 += sqrtf(powf((y_mats[j] - y),2.0));
if(y>0&&y<890)
{
inputImage->setPixel(j,int(y+0.3),qRgb(0,255,0));
}
if(y1>0&&y1<900)
inputImage->setPixel(j,int(y1),qRgb(0,255,0));
*/
float cx = j - X0;
float cy = i - Y0;
float x = cx * cos(theta) - cy * sin(theta);
float y = cx * sin(theta) + cy * cos(theta);
x = (x * x) / powf(a,2);
y = (y * y) / powf(b,2);
float result = x + y;
if(abs(result -1)<0.01)
{
inputImage->setPixel(j,i,qRgb(0,255,0));
}
}
}
Show_Image(*inputImage);
/*
*/
ellipse[0] = X0;
ellipse[1] = Y0;
ellipse[2] = a;
ellipse[3] = b;
ellipse[4] = theta;
}