Commit aa186f79 cuiyadong

添加中心点半径

1 个父辈 0524be05
......@@ -1041,18 +1041,30 @@ namespace Acc.Img
if (count == 1)
{
//单个元器件
if (blob.Centroid.DistanceTo(new Point2d(rediusPt.pt.X,rediusPt.pt.Y)) < rediusPt.radius-10)
{
continue;
}
totalCount = totalCount + 1;
srcMat.Circle((int)blob.Centroid.X, (int)blob.Centroid.Y, (int)maxRadius / 2, Scalar.LightGreen);
}
else if (count > 1)
{
if (count > 20)
//if (count > 20)
//{
// //中间的圆,去除
// if (blob.Centroid.DistanceTo(reelCenter) < rediusPt.radius)
// {
// continue;
// }
// //if (blob.Centroid.DistanceTo(new Point2d(srcMat.Cols / 2, srcMat.Rows / 2)) < 200)
// //{
// // continue;
// //}
//}
if (blob.Centroid.DistanceTo(new Point2d(rediusPt.pt.X, rediusPt.pt.Y)) < rediusPt.radius-10)
{
//中间的圆,去除
if (blob.Centroid.DistanceTo(new Point2d(srcMat.Cols / 2, srcMat.Rows / 2)) < 200)
{
continue;
}
continue;
}
//多个元器件,查找 所有圆
SplitItem item = findCircleInBlob(distanceArr, blobs, blob, reelCenter, maxWidth, maxRadius);
......@@ -1277,9 +1289,9 @@ namespace Acc.Img
if (centerMat != null)
{
pt = centerMat.CalcCentroid();
rediusPt.pt.X = (int)pt.X;
rediusPt.pt.Y = (int)pt.Y;
if (centerMat.Rect.Width > centerMat.Rect.Height)
rediusPt.pt.X = centerMat.Rect.Width/2+centerMat.Rect.X;
rediusPt.pt.Y = centerMat.Rect.Height/ 2 + centerMat.Rect.Y;
if (centerMat.Rect.Width < centerMat.Rect.Height)
rediusPt.radius = (int)Math.Round(centerMat.Rect.Width * 0.5);
else
rediusPt.radius = (int)Math.Round(centerMat.Rect.Height * 0.5);
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!