c# - 如何在 EmguCv 中使用 OpenCv 3.0 CvInvoke.HoughLines 方法

标签 c# opencv emgucv

如何在 C# 中使用 EmguCv 调用 CvInvoke.HoughLines?因此不是 HoughLinesP 方法。我遇到的问题是用于第二个参数的类型,它是 IOutputArray。

最佳答案

        LineSegment2D[] lines;
        using (var vector = new VectorOfPointF())
        {
            CvInvoke.HoughLines(cannyEdges, vector,
                _arguments.HoughLineArgs.DistanceResolution,
                Math.PI / _arguments.HoughLineArgs.AngleResolution,
                _arguments.HoughLineArgs.Threshold);

            var linesList = new List<LineSegment2D>();
            for (var i = 0; i < vector.Size; i++)
            {
                var rho = vector[i].X;
                var theta = vector[i].Y;
                var pt1 = new Point();
                var pt2 = new Point();
                var a = Math.Cos(theta);
                var b = Math.Sin(theta);
                var x0 = a * rho;
                var y0 = b * rho;
                pt1.X = (int)Math.Round(x0 + mat.Width * (-b));
                pt1.Y = (int)Math.Round(y0 + mat.Height * (a));
                pt2.X = (int)Math.Round(x0 - mat.Width * (-b));
                pt2.Y = (int)Math.Round(y0 - mat.Height * (a));

                linesList.Add(new LineSegment2D(pt1, pt2));
            }

            lines = linesList.ToArray();
        }

关于c# - 如何在 EmguCv 中使用 OpenCv 3.0 CvInvoke.HoughLines 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38031836/

相关文章:

c# - 将 Socket.io 1.0 客户端与 c# 程序集成

c# - 使用 SignalR 时跟踪用户操作

c# - ASP.NET 和 Oracle 存储过程错误

c++ - 无法将图像的所有像素更改为选定的颜色

opencv - 比较 RGB 直方图 : plt. hist、np.histogram 和 cv2.compareHist

wpf - 在其他元素后面订购2d/3d对象

c# - 在 Windows Vista/7 Aero 标题栏上绘制自定义按钮

python - 是否可以在 OpenCV 中将图像粘贴到另一个图像之上?

c# - 如何从 C# 调用 OpenCV 的 MatchTemplate 方法

c# - 如何使用 EmguCV (OpenCV) 绘制具有抗锯齿和高斯线强度的圆?