HALCON-二维位置定位-Clip.hdev

本文介绍了一种图像处理方法,通过阈值化、连通区域选择、区域填充等步骤,计算图像中特定区域的方向和中心位置。使用Halcon进行图像读取、显示、Region操作,并展示了如何通过计算得到的Region方向绘制箭头指示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

* clip.hdev: Orientation of clips

//关闭图形窗口的图像
dev_update_window ('off')

//读入图像
read_image (Clip, 'clip')

//获得图像大小
get_image_size (Clip, Width, Height)

//关闭窗口
dev_close_window ()

//打开指定窗口
dev_open_window (0, 0, Width / 2, Height / 2, 'black', WindowID)

//显示图像
dev_display (Clip)

//设置窗口字体
set_display_font (WindowID, 14, 'mono', 'true', 'false')

//窗口显示“按F5继续运行”
disp_continue_message (WindowID, 'black', 'true')

//暂停
stop ()

//阈值化
binary_threshold (Clip, Dark, 'max_separability', 'dark', UsedThreshold)

//连通区域
connection (Dark, Single)

//按面积大小选择区域
select_shape (Single, Selected, 'area', 'and', 5000, 10000)

//定义region填充方式
dev_set_draw ('fill')

//设置颜色数量
dev_set_colored (12)

显示Region
dev_display (Selected)

 

//窗口显示“按F5继续运行”
disp_continue_message (WindowID, 'black', 'true')

//暂停
stop ()

//显示图像
dev_display (Clip)

//设置Region颜色
dev_set_color ('green')

//显示区域
dev_display (Selected)

//计算region方向
orientation_region (Selected, Phi)

//计算region中心面积和坐标
area_center (Selected, Area, Row, Column)

//设置线宽3
dev_set_line_width (3)

//设置region填充方式
dev_set_draw ('margin')
Length := 80

//|Phi| 是求个数
for i := 0 to |Phi| - 1 by 1

    //设置颜色
    dev_set_color ('blue')

//显示箭头
    disp_arrow (WindowID, Row[i], Column[i], Row[i] - Length * sin(Phi[i]), Column[i] + Length * cos(Phi[i]), 4)

//显示消息 deg(Phi[i])转换成角度,$'3.1f'最多三位整数,一位小数
    disp_message (WindowID, deg(Phi[i])$'3.1f' + ' deg', 'image', Row[i], Column[i] - 100, 'black', 'false')
endfor

//显示图形窗口
dev_update_window ('on')

<think>我们正在寻找HALCON20.11Progress版本的HALCONDrawingObjects.dll文件位置,并解决该DLL缺失的问题。根据之前的知识,HALCON的DLL通常位于安装目录的bin子目录下,按.NET版本分类存放。对于HALCON20.11Progress版本,我们可以按照以下路径查找:默认安装路径:C:\ProgramFiles\MVTec\HALCON-20.11-Progress\bin\dotnetXX其中XX代表.NET版本,如dotnet35(.NET3.5)、dotnet40(.NET4.0)等。但是,用户提到在HALCON-20.11-Progress中找不到该DLL,可能的原因有:1.安装时未选择.NET支持组件。2.自定义安装路径,未在默认位置。3.该版本可能将绘图对象库集成到了主库中(但通常不会,因为HALCONDrawingObjects.dll是独立的绘图支持库)。解决方案:1.确认安装路径:检查默认安装目录是否存在。2.重新运行安装程序,确保勾选了.NET支持组件。3.如果确实没有,可以尝试从其他相同版本的机器上复制,或者联系MVTec支持。另外,注意:从HALCON18.x开始,为了支持中文路径,需要调用SetHcppInterfaceStringEncodingIsUtf8(false)(引用[1])。但这与DLL位置无关。根据用户提供的引用[2][3][4]都是关于Python接口的,与当前问题无关,但可以知道用户可能同时在使用Python,但当前问题集中在C#的DLL引用上。因此,我们给出具体步骤:步骤1:检查默认路径-打开文件资源管理器,导航到:C:\ProgramFiles\MVTec\HALCON-20.11-Progress\bin-查看是否存在dotnetXX(如dotnet40)文件夹,并进入该文件夹,检查是否有HALCONDrawingObjects.dll。步骤2:检查其他可能的路径-如果自定义安装,请到自定义安装目录下的bin文件夹中查找。-32位系统可能安装在C:\ProgramFiles(x86)\MVTec\HALCON-20.11-Progress\bin步骤3:重新安装(如果找不到)-运行HALCON20.11Progress的安装程序。-选择“修改”安装,确保“.NET接口”组件被选中(通常包含在“开发”组件中)。-完成安装后再次检查。步骤4:手动添加引用(如果找到)-在VisualStudio中,右键点击项目中的“引用”->“添加引用”->“浏览”,然后定位到该DLL。步骤5:设置复制到输出目录-在引用属性中,将“复制本地”设置为True,确保DLL被复制到输出目录(bin\Debug或bin\Release)。步骤6:环境变量(可选)-可以设置环境变量HALCONROOT指向HALCON-20.11-Progress的安装目录,然后在项目中通过宏$(HALCONROOT)来引用路径。如果以上步骤仍然找不到,则可能是该版本没有提供这个DLL?但通常不会,因为HALCONDrawingObjects.dll是HDevelop窗口绘图的基础。注意:HALCON20.11Progress的安装目录结构可能与之前的版本略有不同,但基本一致。如果用户确实无法找到,建议联系MVTec技术支持。生成相关问题:1.如何设置HALCON以支持中文路径?2.如何在VisualStudio中正确配置HALCON.NET开发环境?3.HALCON20.11Progress的安装组件选择有哪些注意事项?4.如何验证HALCON.NET接口是否安装成功?</think>### HALCON 20.11 Progress 中 HALCONDrawingObjects.dll 的位置与解决方案 #### 一、标准安装位置 对于 HALCON 20.11 Progress 版本,`HALCONDrawingObjects.dll` 默认位于: ```path C:\Program Files\MVTec\HALCON-20.11-Progress\bin\dotnetXX ``` - **路径说明**: - `XX` 表示 .NET 版本,具体取决于您的开发环境: - .NET Framework 4.x → `dotnet40` - .NET Core 3.1 → `dotnetcore31` - .NET 5/6/7 → `dotnet50` - 完整示例: ```path C:\Program Files\MVTec\HALCON-20.11-Progress\bin\dotnet40\HALCONDrawingObjects.dll ``` #### 二、找不到文件的常见原因与解决方案 1. **未安装 .NET 支持组件** HALCON 安装时需手动勾选 .NET 接口支持: - 重新运行安装程序 → 选择 **"修改"** - 在组件列表中勾选: `Development Components` > `.NET Interface` ![安装组件选择](https://example.com/halcon-install-components.png) - 完成安装后再次检查上述路径[^1] 2. **路径差异问题** - 32位系统路径: ```path C:\Program Files (x86)\MVTec\HALCON-20.11-Progress\bin\dotnetXX ``` - 自定义安装路径: 检查安装时指定的目录(可在 HALCON 许可证管理器中查看安装位置) 3. **中文路径支持问题** 若路径包含中文,需在初始化时调用(引用[1]): ```csharp SetHcppInterfaceStringEncodingIsUtf8(false); // 支持中文路径 ``` 4. **环境变量配置** 添加系统环境变量确保运行时定位- 变量名:`HALCONROOT` - 变量值:`C:\Program Files\MVTec\HALCON-20.11-Progress` #### 三、验证与调试步骤 1. **手动检查文件** 在资源管理器中直接导航: ```path %ProgramFiles%\MVTec\HALCON-20.11-Progress\bin ``` 检查各 `dotnetXX` 子目录是否存在目标 DLL。 2. **版本兼容性验证** 若文件存在但无法加载,检查: - DLL 版本需与主库 `halcondotnet.dll` 一致 - 使用 PowerShell 查看版本: ```powershell [System.Diagnostics.FileVersionInfo]::GetVersionInfo("C:\...\HALCONDrawingObjects.dll").FileVersion ``` 3. **项目配置修复** 在 Visual Studio 中: ```xml <!-- .csproj 文件示例 --> <ItemGroup> <Reference Include="HALCONDrawingObjects"> <HintPath>C:\Program Files\MVTec\HALCON-20.11-Progress\bin\dotnet40\HALCONDrawingObjects.dll</HintPath> </Reference> </ItemGroup> ``` - 设置 **"复制本地"=True** 确保输出目录包含该 DLL #### 四、终极解决方案 若确认安装后仍缺失文件: 1. 从官方安装包提取: - 下载 `halcon-20.11-progress-windows.exe` - 用 7-Zip 解压 → 定位到 `redist\dotnetXX` 2. 联系 MVTec 技术支持获取文件补发 3. 重装 HALCON 并**完整记录安装日志**: ```cmd halcon-20.11-progress-windows.exe /log "C:\install_log.txt" ``` > **关键提示**:调试时需将 DLL 复制到输出目录(`bin\Debug`),或在生成事件中添加: > ```cmd > xcopy /Y "$(HALCONROOT)\bin\dotnet40\HALCON*.dll" "$(TargetDir)" > ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值