问题标签 [halcon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
85 浏览

projection - Halcon - 将坐标转移到不同的平面

我有相对于姿势上特定平面的坐标(X/Y)。

我需要知道 Y 值是如何变化的,如果从相机的视角将点投影到另一个平面,即在 Z 方向上距离 10 毫米。

我发现的唯一方法是将我的 X/Y 点转换为图像坐标,project_3d_point然后使用 z 位移姿势将其转换回世界坐标。问题在于图像分辨率太低而无法获得精确值。这可以在不使用图像坐标的情况下计算吗?在图片中,我有 Y1 和 Y2,需要 Y3 和 Y4。

在此处输入图像描述

编辑:

这是我试图解决的其他问题,但我很确定它是垃圾:

计算位姿是原点位姿处的位姿。Z=0.01

编辑2:

这行得通,但它非常丑陋。有没有更聪明更好的方法来解决这个问题?

0 投票
1 回答
723 浏览

python - 使用 OpenCV 进行快速原型设计的最佳 IDE

我想询问使用 OpenCV 库对程序进行原型设计的最佳 IDE。

我用 Halcon 编程已经 3 年了,我也想学习如何用 OpenCV 编程。我正在考虑复制一些我用 Halcon 创建的旧程序,而是使用 OpenCV。问题是,也许我没有使用正确的 IDE(我正在使用 Spyder 使用 Python 进行编程)或者使用 OpenCV 编程比我预期的要慢(我不会放弃我不知道合适的可能性)使用这些工具正确原型的方法)。

我已经知道我来自一个昂贵的程序,它让我可以舒适地工作,但我想念有一个窗口可以动态显示我正在应用的操作结果。此外,快速绘制一些 ROI。无论如何,你认为我使用了正确的工具吗?您是否知道一些教程,我可以从中学习如何使用该 IDE 快速进行原型制作?

先感谢您!

0 投票
0 回答
363 浏览

bitmap - C++/CLI & Halcon:将 HImage 转换为位图时图像失真

我目前正在使用 Halcon 开发基于视觉的系统。处理成功后,我希望将 HImage-Format 中裁剪出来的灰度值图像转换为位图。我拥有的功能(在“托管”区域中)可以实现这一点,但位图却被扭曲了。我该如何解决这个问题?

在 C# 中测试的代码(通过使用不安全块并修复字节指针)和 Halcon 的 write_image() 函数提供以下位图,它应该是这样的:

在此处输入图像描述

在 C++/CLI 中由相同函数创建的位图如下所示:

在此处输入图像描述

0 投票
0 回答
99 浏览

opencv - OpenCV 中是否有类似于 halcon 中的 'gen_measure_rectangle2' 的函数?

我有一个项目,我需要在 OpenCV C++ 中实现一个测量卡尺工具,它应该在 Halcon 中复制一个测量工具。它主要使用来自 HALCON 的函数 'gen_measure_rectangle2' 和 'measure_pairs'。如果你们中的任何人能告诉我这是否可能,或者 OpenCV 中有什么东西可以帮助我实现这一目标,我将非常感激。

我已经在 OpenCV 中检查了一般的边缘检测算子。但我想要和 HALCON 完全一样的东西。任何帮助或建议将不胜感激。

0 投票
1 回答
420 浏览

3d - 3D点云的全局匹配

点云匹配的方式有很多种。比如ICP、pcl对ppf的匹配或者别的什么的。但他们中的大多数都是将一个目标与一个源匹配(一个接一个)。

现在我有一个案例,我有一个带有瓶子作为模型的点云,而另一个点云是很多瓶子作为场景。我想将模型与场景匹配,并且不仅获得对象的一个​​结果(一个接一个)。

我在 MVTEC 中找到了一个 api,这正是我需要的,但它是付费的。

在此处输入图像描述

您可以看到照片左侧是真实场景,右侧是点云。我想在使用一个模型点云的场景点云中找到“许多瓶子”。

我知道有一些声明全局对位点的方法,但它们都只能匹配场景中的一个结果,而不是我想要得到多个结果的结果。

是否有任何想法或实现方法是开源的或在任何论文中?

0 投票
1 回答
100 浏览

linux - 如何将四核的 3 个核心与 Linux 隔离并专门用于 Halcon?

如何将四核的 3 个核心与 Linux 隔离并专门用于 Halcon?

这是我迄今为止尝试过的:

  1. 我通过引导选项将 Linux 配置为仅使用四核 CPU 的核心 0isolcpu=1,2,3
  2. 我启动了我的多线程 C++ 程序,让一个线程用几个HSystem::SetSystem(). 这是halcon主线程。默认情况下,“ thread_pool”选项设置为"true"(但我也尝试过"false")。而且,这很重要,首先,我在 halcon 主线程pthread_setaffinity(getpid(), sizeof(set), &set);cpu_set_t set添加了核心 1、2 和 3 CPU_SET(index, &set)
  3. 无论如何,现在具有“最大”模式的 QR 矩阵代码应该在核心 1、2 和 3 上启动多个线程。但它不起作用。它仅在 CPU 负载几乎为 90% 的核心 1 上运行,而核心 2 和 3 的 CPU 负载保持在 0%(参见top -H)。这在我看来好像 Halcon 确实错过了使用所有 3 个内核的神奇选项。
0 投票
0 回答
134 浏览

c# - 使用 halcon 读取的区域文件不正确

我有一个 C# Windows 窗体应用程序,它使用 halcon 文件来处理一些图像。在程序中,我想读取保存在特定目录中的区域对象,并将其用作参数。当我开始编程时,程序会自动从目录中读取区域。当我触发处理图像的程序时,它使用该区域作为参数。但那时我有一个问题。区域大小与原始区域文件不同。当我在不关闭程序的情况下再次读取该文件时,可以看到它的原始大小。我该如何解决这个问题?一开始我怎样才能正确读取该区域?

这就是我从目录中读取区域的方式

这就是我使用区域作为参数的方式。

这就是我开始过程的方式

当程序启动时,区域看起来像那样(橙色矩形)。但它的原始尺寸比洗发水大

在此处输入图像描述

0 投票
1 回答
108 浏览

datamatrix - HALCON - 如何在 halcon 中读取低分辨率 ECC200 数据代码?

我需要使用 halcon 20 读取此低质量 ECC 代码。我尝试了所有可能的参数,但找不到任何能够读取此代码的组合。

对我来说奇怪的是,如果我看一下示例代码,有些图像甚至比这更糟糕,而且阅读起来没有问题。

这是我当前无法读取的代码:

在此处输入图像描述

任何帮助表示赞赏

0 投票
1 回答
81 浏览

halcon - HALCON 中的矩阵到图像转换

我一直在尝试将矩阵转换为 Halcon 中的图像。到目前为止,我只设法在所有像素的 for 循环中使用 set_grayval。有人可以提出更好的方法吗?谢谢!

0 投票
1 回答
196 浏览

image-processing - 如何删除重复点,并在 Halcon(MVTEC 软件)中绘制带有 X 轴和 Z 轴的图表?

我正在做一个项目,我需要在图表上绘制激光线图像。我得到了激光点的坐标。我将使用点在 Halcon(MVTEC 软件)中绘制二维图 有些点是重复的,这会阻止正确绘制图表。如何删除重复点?并用 X 轴和 Z 轴绘制图表?请通过以下链接下载坐标文件:

https://s21.picofile.com/d/8445324542/15c1902a-0828-4692-b0ce-a65651306111/Coordinates.rar