码农小乐 2025-02-19 13:49 采纳率: 0%
浏览 15
已结题

C#l联合opencvSharp以及halcon+yolov8图像转换后检测出错

C#l联合opencvSharp以及halcon+yolov8图像转换时碰到一个问题 ?Mat直接从硬盘上读图像文件后用yolo检测没啥问题,然后用halcon从硬盘上度图像文件,再将halcon的图像转换成Mat交给YOLO检测,出错!这是什么原因呢?(halcon的图像转换成Mat图像存起来跟原来的图像打开看也没有明显问题)

  • 写回答

5条回答 默认 最新

  • 阿里嘎多学长 2025-02-19 13:49
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    问题解答

    你使用 C# 联合 OpenCVSharp 和 Halcon+yolov8 图像转换后检测出错。问题是 Mat 对象直接从硬盘上读图像文件后用 yolo 检测没问题,但是用 Halcon 从硬盘上读图像文件后再将 Halcon 的图像转换为 Mat 对象后,yolo 检测就出错。

    可能的原因是 Halcon 和 OpenCVSharp 使用的图像格式不同,导致图像转换失败。可以尝试使用 Halcon 的图像转换函数将图像转换为 OpenCVSharp 可以识别的格式,例如使用 Halcon 的 hl_image_to_mat 函数将 Halcon 的图像转换为 OpenCVSharp 的 Mat 对象。

    代码示例:

    using Halcon;
    using OpenCVSharp;
    
    // 读取 Halcon 图像
    HalconImage image = new HalconImage("image.hdev");
    
    // 将 Halcon 图像转换为 OpenCVSharp Mat 对象
    Mat mat = new Mat();
    hl_image_to_mat(image, mat);
    
    // 使用 yolo 检测
    Yolo yolo = new Yolo();
    yolo.Detect(mat);
    

    如果问题仍然存在,可以提供更多的错误信息和代码示例,以便更好地帮助你解决问题。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月24日
  • 创建了问题 2月19日