
初始参数是00195,注意halcon里单位是m
k是畸变系数,可以初始为0
sx和sy是相邻像元的水平和垂直距离,1/4"可以查得分别宽和高尺寸是32和24mm,用320×240去除,得到sx和sy分别是001mm,那么应该初始为sx=10e-005和sy=10e-005,Cx和Cy分别是图像中心点行和列坐标,可以初始化为160和120,最后两个参数是ImageWidth和ImageHeight直接就用320和240。还有不明白的地方,可以直接回复消息给我。
我的QQ是331098523
开始做Halcon的上位机,选用Visual Studio 100平台。
C#
第一步:
Visual Studio 100设置引用HalconDotNetdll
01新建项目
02选择Visual C#
03修改文件名
04确认
第二步
Visual Studio 100设置引用HalconDotNetdll
01选择“解决方案资源管理器”
02选择“引用”,右键
03选择“添加引用”
第三步
Visual Studio 100设置引用HalconDotNetdll
01在添加引用选项卡选择浏览
02选择路径:X:\Program Files\MVTec\HALCON-100\bin\dotnet20
03选择“HalconDotNetdll”
04确认
第四步
Visual Studio 100设置引用HalconDotNetdll
01选择“工具箱”
02选择“所有工具”或任意工具控件,右键
03选择“选择项”
第五步
Visual Studio 100设置引用HalconDotNetdll
选择Halcon图像控件
Visual Studio 100设置引用HalconDotNetdll
还有VB的设置,如下图:
Visual Studio 100设置引用HalconDotNetdll
01选择项目名称
02点击显示全部文件,取消隐藏,就可以看到引用
03引用,邮件
04添加,之后的步骤和C#一样
Visual Studio 100设置引用HalconDotNetdll
选择工具控件,步骤和C#基本一样。
VB的第二张图,步骤如下
01选择“工具箱”
02选择“所有工具”或任意工具控件,右键
03选择“选择项”
04在“net framwork组件”的选项卡中,选择浏览
05出来的对话框中,选择X:\Program Files\MVTec\HALCON-100\bin\dotnet20
06选择“HalconDotNetdll”
07确认
08这时候的工具栏的控件是HWinwow 控件。
kamuixiao :
X:\Program Files\MVTec\HALCON-100\bin\dotnet20
路径下的无法使用,在net framework组件无法找到
X:\Program Files\MVTec\HALCON-100\bin\dotnet35
路径下的可用,在net framework组件下可以找到,并且在工具箱上能够找到并使用,但是功能无法实现,如下图
我不作其他动作,程序代码内容仅是运行时候读取一张,
在调试的时候能够运行,但读不到……楼主在VBNET环境下正常运行了吗?求解~
Visual Studio 100设置引用HalconDotNetdll
x8515618 :
定义错了
dim m_hWindow As Htuple '这是一个句柄,不是窗体控件
x8515618 :
Dim m_hWindow As Htuple = Nothing
kamuixiao :
谢谢楼上的建议,但是我试了下发现仍然不行,我觉得问题不是出在这里,不知道使用VBNET的各位有没有遇到过,反正我是没能正常实现过一次的,输出显示的错误情况如图:
Visual Studio 100设置引用HalconDotNetdll
x8515618 :
你只是读取了,都没有显示呢
灵峤 lencue :
你最开始新建项目的时候选择的“net框架”版本是多少的?net 20就用dotnet20文件夹,35就用dontnet35文件夹,你再查看一下,会不会是这个问题,看能不能解决。
irun999 :
请问楼主,用在VS2008中用C#读入一直比较大的的时候只是显示部分,如何解决?
灵峤 lencue :
dev_resize_window_fit_image(ho_Image, 0, 0, 300, 400);
用这个算子,在C#的programcs中可以用的,后面的300,400就是显示这个的大小的,会被缩放到这个比例。
irun999 :
请问在VS 2005 C# 处理视频,程序老是死掉,怎么办?视频无法实时显示。 是不是视频太大了,VS2005处理不够来?该怎么办?
灵峤 lencue :
采用C#的多线程,具体怎么使用,我还在学习中,要是有进展,再一起讨论。
好吧,我写漏了,但事实上我把显示补上,然后按照兄台所说修改定义后仍然没能成功!~附图:
Visual Studio 100设置引用HalconDotNetdll
irun999 :
今天下午发现视频无法显示是因为hdevelop导出程序的死循环函数里没有 HOperatorSetDispObj 显示函数。但是关闭程序就会出现vshostexe无响应。这个问题可能得多线程解决了。
双目立体视觉的研究一直是机器视觉中的热点和难点。使用双目立体视觉系统可以确定任意物体的三维轮廓,并且可以得到轮廓上任意点的三维坐标。因此双目立体视觉系统可以应用在多个领域。现说明介绍如何基于HALCON实现双目立体视觉系统,以及立体视觉的基本理论、方法和相关技术,为搭建双目立体视觉系统和提高算法效率。
双目立体视觉是机器视觉的一种重要形式,它是基于视差原理并由多幅图像获取物体三维几何信息的方法。双目立体视觉系统一般由双摄像机从不同角度同时获得被测物的两幅数字图像,或由单摄像机在不同时刻从不同角度获得被测物的两幅数字图像,并基于视差原理恢复出物体的三维几何信息,重建物体三维轮廓及位置。双目立体视觉系统在机器视觉领域有着广泛的应用前景。
HALCON是在世界范围内广泛使用的机器视觉软件。它拥有满足您各类机器视觉应用需求的完善的开发库。HALCON也包含Blob分析、形态学、模式识别、测量、三维摄像机定标、双目立体视觉等杰出的高级算法。HALCON支持Linux和Windows,并且可以通过C、C、C#、VisualBasic和Delphi语言访问。另外HALCON与硬件无关,支持大多数图像采集卡及带有DirectShow和IEEE1394驱动的采集设备,用户可以利用其开放式结构快速开发图像处理和机器视觉应用软件。
可以用Halcon建立深度学习模型,并用到实际项目中。
流程大概是使用免费的 Halcon Deeplearing Label Tool制作模型后,导出成 hdl 文件,并在应用程序中用 ApplyDlClassifier 应用模型。
经过测试, ApplyDlClassifer 在第一次运行时,无论数据集有多大,执行时间在500ms左右(AMD 5800X + Nvidia P2200),能够明显感受到卡顿,而在第二次运行时,就感受不到卡顿。所以我考虑,在应用程序启动时,使用线程对模型进行预热。
预热听着高深,其实就是读取模型( ReadDlClassifier ) 并送入一张空白图。
下面演示我的做法:
21 封装一个自己的Application类
22 我将Halcon算子封装成一个单例类,并使用 getAlgorithmGlobalData 获得这个单例对象。 slotDoModelWarmUp 是这个单例类一个槽函数。
23 在 slotDoModelWarmUp 中开多线程,对模型进行预热。
我将Halcon深度学习算子要用到的变量封装成一个 context 结构体,放在单例类中。为了节约开销,我使用引用,直接获取这个单例对象。这样,在向线程中传参数时,需要一个 std::ref 。
线程函数如下:
classifierHandle 是一个引用变量,这使得我可以直接 *** 控单例类中的数据成员,而不是使用拷贝。
经过测试,在AMD 5800X + Nvidia P2200下,推理速度达到了1166ms。
ctrl+E 打开浏览例程
ctrl+F 查找
F1 查看帮助文档
F2 重置程序
F3 取消注释
F4 注释
F5 运行
F6 单步运行
F7 单步进入函数
F8 单步退出函数
draw_ 表示界面互动的算子,需要人去画区域
gen_ 表示生成类的算子,比如生成圆形、矩形等
get_ 获取某些属性的算子
tuple_ 代表与数组有关的算子
select_ 代表筛选有关的算子
带有 contour表示轮廓xid有关的算子
带有 gray表示会读有关的算子
halcon中算子主要分为两类,参数运算类,对象运算类;对象包括区域,轮廓xid、图像等。参数运算类一般都是数组等,一般输入输出都为数组,参数多数只有两个值;对于对象运算类算子,一般是第一参数是输入对象,第二个为输出对象,也就是运算结果,而第三行以外的为参数选项。
以上就是关于使用halcon相机标定 初始值确定全部的内容,包括:使用halcon相机标定 初始值确定、怎么在Visual Studio 10.0中设置Halcon机器视觉、双目视觉三维点云获取要学习什么知识等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)