mirror of
https://github.com/opencv/opencv.git
synced 2025-06-08 01:53:19 +08:00
Merge pull request #12206 from jsxyhelu/3.4
find innercircle of contour by using pointPolygonTest: (#12206)
This commit is contained in:
parent
492ef14550
commit
7828854c9d
Binary file not shown.
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 23 KiB |
@ -50,7 +50,8 @@ int main( void )
|
|||||||
}
|
}
|
||||||
|
|
||||||
double minVal, maxVal;
|
double minVal, maxVal;
|
||||||
minMaxLoc( raw_dist, &minVal, &maxVal );
|
Point maxDistPt; // inscribed circle center
|
||||||
|
minMaxLoc(raw_dist, &minVal, &maxVal, NULL, &maxDistPt);
|
||||||
minVal = abs(minVal);
|
minVal = abs(minVal);
|
||||||
maxVal = abs(maxVal);
|
maxVal = abs(maxVal);
|
||||||
|
|
||||||
@ -76,10 +77,11 @@ int main( void )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
circle(drawing, maxDistPt, (int)maxVal, Scalar(255,255,255));
|
||||||
|
|
||||||
/// Show your results
|
/// Show your results
|
||||||
imshow( "Source", src );
|
imshow( "Source", src );
|
||||||
imshow( "Distance", drawing );
|
imshow( "Distance and inscribed circle", drawing );
|
||||||
|
|
||||||
waitKey();
|
waitKey();
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -72,10 +72,11 @@ class PointPolygonTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
drawing.put(0, 0, drawingData);
|
drawing.put(0, 0, drawingData);
|
||||||
|
Imgproc.circle(drawing, res.maxLoc, (int)res.maxVal, new Scalar(255, 255, 255), 2, 8, 0);
|
||||||
|
|
||||||
/// Show your results
|
/// Show your results
|
||||||
HighGui.imshow("Source", src);
|
HighGui.imshow("Source", src);
|
||||||
HighGui.imshow("Distance", drawing);
|
HighGui.imshow("Distance and inscribed circle", drawing);
|
||||||
|
|
||||||
HighGui.waitKey();
|
HighGui.waitKey();
|
||||||
System.exit(0);
|
System.exit(0);
|
||||||
|
@ -29,7 +29,7 @@ for i in range(src.shape[0]):
|
|||||||
for j in range(src.shape[1]):
|
for j in range(src.shape[1]):
|
||||||
raw_dist[i,j] = cv.pointPolygonTest(contours[0], (j,i), True)
|
raw_dist[i,j] = cv.pointPolygonTest(contours[0], (j,i), True)
|
||||||
|
|
||||||
minVal, maxVal, _, _ = cv.minMaxLoc(raw_dist)
|
minVal, maxVal, _, maxDistPt = cv.minMaxLoc(raw_dist)
|
||||||
minVal = abs(minVal)
|
minVal = abs(minVal)
|
||||||
maxVal = abs(maxVal)
|
maxVal = abs(maxVal)
|
||||||
|
|
||||||
@ -46,6 +46,7 @@ for i in range(src.shape[0]):
|
|||||||
drawing[i,j,1] = 255
|
drawing[i,j,1] = 255
|
||||||
drawing[i,j,2] = 255
|
drawing[i,j,2] = 255
|
||||||
|
|
||||||
|
cv.circle(drawing,maxDistPt, int(maxVal),tuple(255,255,255), 1, cv.LINE_8, 0)
|
||||||
cv.imshow('Source', src)
|
cv.imshow('Source', src)
|
||||||
cv.imshow('Distance', drawing)
|
cv.imshow('Distance and inscribed circle', drawing)
|
||||||
cv.waitKey()
|
cv.waitKey()
|
||||||
|
Loading…
Reference in New Issue
Block a user