如何使用EmguCV(OpenCV)绘制具有抗锯齿和高斯线强度的圆
本文关键字:高斯线 EmguCV 何使用 OpenCV 绘制 | 更新日期: 2023-09-27 18:22:17
我需要画一个尽可能完美的圆。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);
}
如果你使用Brg、Brga或Gray颜色,你可以使用这个破解:
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);
`