// HDevelopTemplateWPF projects located under %HALCONEXAMPLES%\c# using System; using HalconDotNet; public partial class HDevelopExport public HTuple

Similar documents
中華民國九十三年 月 日

Microsoft Word - ch04三校.doc

Microsoft Word - 放榜用-105無口試放榜電子榜單_NEW_.doc

untitled

res/layout 目录下的 main.xml 源码 : <?xml version="1.0" encoding="utf 8"?> <TabHost android:layout_height="fill_parent" xml

1.5招募说明书(草案)

Visual Basic D 3D

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

4-4

ZM-VS1200用户使用手册.doc

untitled

新・解きながら学ぶJava

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

概述

CHAPTER VC#

untitled

Microsoft PowerPoint - ch6 [相容模式]

2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

untitled

穨control.PDF

untitled

untitled

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class

约 伯 记 : 约 伯 记 : 惟 有 我 一 人 逃 脱, 来 报 信 给 你 他 还 说 话 的 时 候, 又 有 人 来 说 : 你 的 儿 女 正 在 他 们 长 兄 的 家 里 吃 饭 喝 酒, 不 料, 有 狂 风 从 旷 野 刮 来, 击 打 房 屋 的 四 角, 房 屋 倒 塌 在

加 拉 太 书 :8 2 加 拉 太 书 2:4 8 过 了 三 年, 才 上 耶 路 撒 冷 去 见 矶 法, 和 他 同 住 了 十 五 天 9 至 于 别 的 使 徒, 除 了 主 的 兄 弟 雅 各, 我 都 没 有 看 见 20 我 写 给 你 们 的 不 是 谎 话, 这 是 我 在 神

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

untitled

Microsoft Word - 新1-12.doc

untitled

mvc

Microsoft Word - CX1000-HMI_程序开发_PLC通讯

<4D F736F F F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

三 报 考 条 件 报 考 条 件 按 照 原 广 东 省 人 事 厅 广 东 省 食 品 药 品 监 督 管 理 局 关 于 印 发 广 东 省 药 学 专 业 初 中 级 专 业 技 术 资 格 考 试 实 施 办 法 的 通 知 ( 粤 人 发 号 ) 和 原 广 东 省 人

目 录 第 一 卷 3 第 一 章 第 二 章 供 应 商 须 知 3 合 同 ( 格 式 ) 16 第 三 章 附 件 17 第 二 卷 33 第 四 章 第 五 章 第 六 章 第 七 章 询 价 邀 请 34 询 价 资 料 表 35 合 同 条 款 资 料 表 38 货 物 需 求 及 技

untitled

内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->

untitled

Microsoft Office SharePoint Server MOSS Web SharePoint Web SharePoint 22 Web SharePoint Web Web SharePoint Web Web f Lists.asmx Web Web CAML f

软件工程文档编制

<4D F736F F D E4345C6BDCCA84323B1E0B3CCD2AAB5E3D6AED2BB2E646F63>

epub83-1

<4D F736F F D20C8EDC9E82DCFC2CEE7CCE22D3039C9CF>

第一章 章标题-F2 上空24,下空24

中外合作办学国(境)外学历学位认证系统

2009年3月全国计算机等级考试二级Java语言程序设计笔试试题

untitled

2015

( 总 第 1073 期 ) 浙 江 省 人 民 政 府 主 办 2015 年 3 月 17 日 出 版 省 政 府 令 省 政 府 文 件 目 录 浙 江 省 大 型 群 众 性 活 动 安 全 管 理 办 法 ( 浙 江 省 人 民 政 府 令 第 333 号 ) (3) 浙 江 省 人 民 政

<ADB6ADB1C25EA8FAA6DB2D4D56432E706466>

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

3. 反 映 : 4. 五 花 八 门 : 5. 慷 慨 : 6. 参 与 : 7. 慰 劳 : 8. 延 续 : 9. 珍 爱 : 10. 浪 漫 : 三. 找 出 下 列 每 组 词 中 的 近 义 词 或 同 义 词 : 节 日 节 气 节 令 时 节 习 俗 民 俗 仪 式 风 俗 文 献

59 1 CSpace 2 CSpace CSpace URL CSpace 1 CSpace URL 2 Lucene 3 ID 4 ID Web 1. 2 CSpace LireSolr 3 LireSolr 3 Web LireSolr ID

Microsoft Word - 第3章.doc

untitled

1.5招募说明书(草案)

广东省建设执业资格注册中心

Chapter 9: Objects and Classes

1. 2. Flex Adobe 3.

新版 明解C++入門編

(Microsoft Word - wes _\246p\246\363\250\317\245\316LED\277O\305\343\245\334\252\254\272A.doc)

Olav Lundström MicroSCADA Pro Marketing & Sales 2005 ABB - 1-1MRS755673

第3章.doc

Microsoft PowerPoint - L17_Inheritance_v4.pptx

Java

公务员录用体检工作手册(2013年修订版)


2015春诸暨市公告.doc

2008国优评审会讲稿

V2_关于开展2016年职工文体活动的通知.doc

untitled

2、住在基督裏的奧秘(雅各.馬康基).doc

江油市教育体育局

四川省2014年从优秀工人农民和村(社区)党组织书记中考试录用乡镇(街道)机关公务员公告

关 于 2016 年 度 我 市 专 业 技 术 人 员 职 称 外 语 等 级 统 一 考 试 和 职 称 古 汉 语 考 试 报 名 等 有 关 事 项 的 通 知 各 位 考 生 : 根 据 天 津 市 职 称 工 作 办 公 室 关 于 2016 年 度 全 国 专 业 技 术 人 员 职

Microsoft Word - 01.DOC

CHAPTER 1


设计任务书.doc

临床路径管理模式下医疗服务流程的关键环节分析

Strings

VB程序设计教程

CA-C750К

Microsoft Word - QTP测试Flex.doc

19 19

关于开展党员组织关系集中

Chapter 9: Objects and Classes

untitled

untitled

LEFT, RIGHT // 左 // 右 (2) 当图片移动后, 按钮的坐标发生改变, 此操作通过 setloca tion() 方法实现 setlocation() 方法是从 Component 类继承的, 其定义如下 : public void setlocation(int x, int y

Learning Java

可 以 查 看 Android 版 打 地 鼠 游 戏 的 视 频 教 程 此 教 程 由 Wolber 教 授 基 于 上 一 个 版 本 的 App Inventor 录 制 的, 但 同 样 可 以 有 助 于 理 解 开 发 过 程 图 3-1 打 地 鼠 游 戏 的 用 户 界 面 学 习

Under the Water / 2014 HD/ 29

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e

1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F

INTRODUCTION TO COM.DOC

Microsoft Word - CVersion doc

untitled

@欄目:

Transcription:

halcon 与 C# 混合编程之 Halcon 代码调用 写在前面 完成 halcon 与 C# 混合编程的环境配置后, 进行界面布局设计构思每一个按钮所需要实现 的功能, 将 Halcon 导出的代码复制至相应的 C# 模块下即可 halcon 源程序 : dev_open_window(0, 0, 512, 512, 'black', WindowHandle) read_image (Image, 'C:/Users/Administrator/Desktop/ 猫.jpg') dev_display(image) get_image_size(image, Width, Height) rgb3_to_gray(image, Image, Image, ImageGray) dev_display(imagegray) 注意 : 写 halcon 程序时, 如果过程中的图片需要显示出来, 则需要在每个过程中都添加 dev_display(**) 第一步 : 导出 C# 程序, 建立项目, 并添加此类 // // File generated by HDevelop for HALCON/DOTNET (C#) Version 10.0 // // This file is intended to be used with the HDevelopTemplate or

// HDevelopTemplateWPF projects located under %HALCONEXAMPLES%\c# using System; using HalconDotNet; public partial class HDevelopExport public HTuple hv_expdefaultwinhandle; // Main procedure private void action() // Local iconic variables HObject ho_image, ho_imagegray; // Local control variables HTuple hv_width, hv_height; // Initialize local and output iconic variables HOperatorSet.GenEmptyObj(out ho_image); HOperatorSet.GenEmptyObj(out ho_imagegray); //dev_open_window(...); ho_image.dispose(); HOperatorSet.ReadImage(out ho_image, "C:/Users/Administrator/Desktop/ 猫.jpg"); HOperatorSet.DispObj(ho_Image, hv_expdefaultwinhandle);

HOperatorSet.GetImageSize(ho_Image, out hv_width, out hv_height); ho_imagegray.dispose(); HOperatorSet.Rgb3ToGray(ho_Image, ho_image, ho_image, out ho_imagegray); HOperatorSet.DispObj(ho_ImageGray, hv_expdefaultwinhandle); ho_image.dispose(); ho_imagegray.dispose(); public void InitHalcon() // Default settings used in HDevelop HOperatorSet.SetSystem("do_low_error", "false"); public void RunHalcon(HTuple Window) hv_expdefaultwinhandle = Window; action(); 第二步 : 布局设计

本程序需要显示图片的 halconwindow 控件和读图以及处理图片的两个 button 控件 ; 如下图 : 第三步 : 将导出的类进行框架分解 如果想在程序中添加不同的按键, 比如一个用来打开图片, 一个用来处理图片, 则就需要将 halcon 导出的类进行分解 ; 框架如下 : // 定义变量 // 初始化 halcon public void InitHalcon() // 初始化 halcon 程序

// 读取图片 public void ReadPicture(HTuple Window) // 读图程序 // 处理图片 public void Process() // 处理程序 第四步 : 填补框架 将对应框架下得程序进行填补操作 ( 下边程序可以代替 public partial class HDevelopExport 下的所有程序 ): // 定义变量 public HTuple hv_expdefaultwinhandle; HObject ho_image, ho_imagegray; HTuple hv_width, hv_height; // 初始化 halcon

public void InitHalcon() // Default settings used in HDevelop HOperatorSet.SetSystem("do_low_error", "false"); public void ReadPicture(HTuple Window) // 读图并显示 hv_expdefaultwinhandle = Window; HOperatorSet.GenEmptyObj(out ho_image); ho_image.dispose(); HOperatorSet.ReadImage(out ho_image, "C:/Users/Administrator/Desktop/ 猫.jpg"); HOperatorSet.DispObj(ho_Image, hv_expdefaultwinhandle); HOperatorSet.GetImageSize(ho_Image, out hv_width, out hv_height); public void Process() // 处理程序 HOperatorSet.GenEmptyObj(out ho_imagegray);

ho_imagegray.dispose(); HOperatorSet.Rgb3ToGray(ho_Image, ho_image, ho_image, out ho_imagegray); HOperatorSet.DispObj(ho_ImageGray, hv_expdefaultwinhandle); ho_image.dispose(); ho_imagegray.dispose(); 第五步 : 在主程序 Form1.cs 中添加程序 : 1 在主程序 Form1 的类下对刚才添加的类进行实例化 : HDevelopExport hd = new HDevelopExport(); 2 在按键下添加相应程序 private void button1_click(object sender, EventArgs e) hd.readpicture(hwindowcontrol1.halconwindow); private void button2_click(object sender, EventArgs e) hd.process(); 此步骤完成之后, 程序可以运行 附加步骤 1:

在以上程序中, 已经可以将图片显示出来, 并进行处理, 但由于窗口与图片的大小不一致, 导致在显示窗口中不能适应程序窗口的大小, 下面是解决此类问题的方法 : 在读图程序中, 将获取图片的大小的程序 HOperatorSet.GetImageSize(ho_Image, out hv_width, out hv_height); 放在显示图片之前, 并在显示图片程序之前加入下面程序 : HOperatorSet.SetPart(hv_ExpDefaultWinHandle, 0, 0, hv_height - 1, hv_width - 1); 然后图片就可以适应窗口大小 此步骤也可以在 halcon 中更改 附加步骤 2: 如果想在程序中能够打开本地文件夹的图片进行处理, 则需要改以下程序 : 注意 :12 是添加的类中 34 是主程序中 1 将 public void ReadPicture(HTuple Window) 的括号中加入参数, 改为 public void ReadPicture(HTuple Window, string ImagePath) 2 将 ReadPicture 下的程序 HOperatorSet.ReadImage(out ho_image, "C:/Users/Administrator/Desktop/ 猫.jpg"); 改为 HOperatorSet.ReadImage(out ho_image, ImagePath); 3 主程序中定义变量 string ImagePath 4 将 button1 的程序改成如下 : private void button1_click(object sender, EventArgs e)

OpenFileDialog openfiledialog1 = new OpenFileDialog(); openfiledialog1.filter ="JPEG 文件 *.jpg* BMP 文件 *.bmp*"; openfiledialog1.restoredirectory = true; openfiledialog1.filterindex = 1; if (openfiledialog1.showdialog() == DialogResult.OK) ImagePath = openfiledialog1.filename; hd.readpicture(hwindowcontrol1.halconwindow, ImagePath); 接下来可以试试运行程序