【问题标题】:how do you track the X and Y Coordinates of a Rectangle on a bitmap in c#如何在 c# 的位图上跟踪矩形的 X 和 Y 坐标
【发布时间】:2020-11-29 18:42:31
【问题描述】:
static readonly CascadeClassifier cascadeClassifier = new CascadeClassifier("haarcascade_frontalface_alt_tree.xml");

    void Device_NewFrame(object sender, NewFrameEventArgs eventArgs)
    {
        Bitmap bitmap = (Bitmap)eventArgs.Frame.Clone();
        Image<Bgr, byte> grayImage = new Image<Bgr, byte>(bitmap);
        Rectangle[] rectangles = cascadeClassifier.DetectMultiScale(grayImage, 1.2, 1);
        foreach (Rectangle rect in rectangles)
        {
            using (Graphics graphics = Graphics.FromImage(bitmap))
            {
                using (Pen pen = new Pen(Color.Red, 5))
                {
                    graphics.DrawRectangle(pen, rect);
                }

            }
        }
        bitmap.RotateFlip(RotateFlipType.RotateNoneFlipX);
        webcamDetection.Image = bitmap;
    }

这是我正在使用的代码 我的问题是如何获得红色矩形的 x 和 y 值,以便我可以将这些值发送到 arduino 并设置伺服系统。我可以提供更多信息,希望有人可以帮助我。

【问题讨论】:

  • 你把矩形放在那里了吗?如果是这样,只需跟踪它们。如果没有,您将不得不扫描每一行
  • 我认为矩形的坐标是由人脸识别给出的,虽然我不确定,但我是 C# 新手。如果有的话,我该如何扫描每一行?我的想法是将每个像素与笔的颜色进行比较,但我不知道这是否可以编码。
  • 我觉得这个问题不是很清楚。它是否涉及如何检测图像中具有指定颜色的矩形?或者如何取一个矩形并将坐标发送到 arduino?
  • 我正在尝试找到一种方法来获取矩形坐标以发送 arduino。
  • 很高兴得知您的问题已经解决,您可以给个回复并将您的回复标记为答案。 how to mark

标签: c# visual-studio winforms opencv bitmap


【解决方案1】:

如果您知道矩形,您可以查看the documentation 以查看可用属性。您通常会使用 rect.X、rect.Y、rect.Width 和 rect.Height。

【讨论】:

  • 在哪里可以找到文档?
  • @alex456 检查了链接?
  • 该链接显示了如何使用给定的值创建一个矩形,但我认为我使用的代码根据检测到人脸的位置将矩形放置在位图上,我试图找到一种方法获取该矩形的坐标。
  • @alex456 如果您检查链接的属性部分,您会得到准确的信息。
  • @alex456 Stackoverflow 是一个问答网站,而不是代码编写服务。如果您想知道如何编写 c# 代码,请查看 c# 教程。如果您想知道如何向 arduino 发送值,您应该发布一个新问题来询问。
猜你喜欢
  • 2012-02-01
  • 2019-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-03
  • 2019-06-10
相关资源
最近更新 更多