1

可能な限り完璧な円を描く必要があります。EmguCV にはアンチエイリアス オプションがないようです。

SmoothGaussian を使用しようとしていますが、円はまだ十分に滑らかに見えません。

また、円の線の強度はガウス形状 (つまり、中心が明るい) である必要があります。

どうすればそれを達成できますか?

これが私が今していることです:

using (Image<Gray, Byte> img = new Image<Gray, byte>(800, 800, new Gray(0)))
{
    PointF center = new PointF(img.Width / 2, img.Height / 2);
    //Center line
    float r = 200.0f;
    CircleF circle = new CircleF(center, r);
    img.Draw(circle, new Gray(255), 1);
    img._SmoothGaussian(7, 7, 3, 3);
}
4

1 に答える 1

4

Brg、Brga、またはグレーの色を使用する場合は、そのハックを使用できます。

using(var graph = Graphics.FromImage(image.Bitmap))
{
    graph.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
    graph.DrawEllipse(new Pen(color.BackColor), x, y, d`i`ameter, diameter);
}

` 編集: cvInvoke も使用できます

var center = new Point(x, y);
var color = new Bgr(this.color.BackColor);

CvInvoke.cvCircle(image.Ptr, center, radius, color.MCvScalar, thickness, Emgu.CV.CvEnum.LINE_TYPE.CV_AA, 0);

`

于 2014-06-19T18:25:34.600 に答える