mirror of
https://github.com/opencv/opencv.git
synced 2024-11-28 21:20:18 +08:00
Merge pull request #5518 from Bovaz:master
This commit is contained in:
commit
979f88f6db
@ -301,9 +301,7 @@ double cv::arcLength( InputArray _curve, bool is_closed )
|
||||
CV_Assert( count >= 0 && (depth == CV_32F || depth == CV_32S));
|
||||
double perimeter = 0;
|
||||
|
||||
int i, j = 0;
|
||||
const int N = 16;
|
||||
float buf[N];
|
||||
int i;
|
||||
|
||||
if( count <= 1 )
|
||||
return 0.;
|
||||
@ -319,15 +317,8 @@ double cv::arcLength( InputArray _curve, bool is_closed )
|
||||
{
|
||||
Point2f p = is_float ? ptf[i] : Point2f((float)pti[i].x,(float)pti[i].y);
|
||||
float dx = p.x - prev.x, dy = p.y - prev.y;
|
||||
buf[j] = dx*dx + dy*dy;
|
||||
perimeter += std::sqrt(dx*dx + dy*dy);
|
||||
|
||||
if( ++j == N || i == count-1 )
|
||||
{
|
||||
Mat bufmat(1, j, CV_32F, buf);
|
||||
sqrt(bufmat, bufmat);
|
||||
for( ; j > 0; j-- )
|
||||
perimeter += buf[j-1];
|
||||
}
|
||||
prev = p;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user