设置首页收藏本站
开启左侧

[文档] python配置halcon环境并且运行

  [复制链接]
Criss 发表于 2020-12-10 23:28:21 | 显示全部楼层 |阅读模式
建议提前清空下电脑上已经安装的python环境,避免出现异常!
参考的视频(建议下载):https://www.51halcon.com/forum.p ... &tid=4497&fromuid=3

1.安装pycharm,安装Community Edition即可,商业版需要收费的:
下载地址:https://www.jetbrains.com/pycharm/
微信截图_20201214195459.png

2.安装Anaconda:
https://www.anaconda.com/products/individual
安装位置:
  1. C:\Users\Criss\anaconda3
复制代码

配置参考文章:https://zhuanlan.zhihu.com/p/61639212
这里需要说明的是,Anaconda已经是Python的发布版了,里面集成了python的,所以我这里都没有提供单独安装python的步骤!
和上面配置文章不一样的一点是我只加入了系统环境变量:
0.png
最后安装完成以后的环境path设置为:
01.png
特别提示:安装路径中不要含有空格之类的特殊符号,否则导致后面无法加载环境。

为了方便大家下载,整合了安装包下载地址:
链接:https://pan.baidu.com/s/1-K1waLd_dCxznkLlTrvzAQ
提取码:
游客,本帖隐藏的内容需要积分高于 5 才可浏览,您当前积分为 0


3.打开pycharm软件,新建工程:
设置location为:D:\Halcon_Python
11.png
其中,这一部分就是虚拟环境目录:
  1. C:\Users\Criss\anaconda3\envs\
复制代码

后面我们创建halcon的虚拟环境就在这个目录下。

4.进入工程后,打开Terminal(终端),输入指令:
1.png
  1. conda create -n halcon python=3.8
复制代码

这句代码的意思就是创建名称为halcon的环境,使用的是python 3.8版本。

创建完环境以后就提示需要安装一些包:
2.png
输入y确认即可。安装完成以后就可以去刚刚的环境目录查看halcon环境目录已经成功创建了。
3.png

然后切换到halcon环境目录:
4.png
  1. conda activate halcon
复制代码

就可以切换到halcon的环境了。
这里我试过切换成功了,后面import halcon是找不到的,估计没有成功。
可以通过手动去改解释器也可以正常,请看后面的说明。

激活halcon后,查询下包列表:
5.png
  1. conda list
复制代码


可以看到当前是没有安装halcon的包的,所以接下来我们需要安装halcon的包:
6.png
输入指令:
  1. pip install mvtec-halcon==20110
复制代码

提示成功安装mvtec-halcon-20110.0.0,这里需要注意的是,不能开启代理上网功能,否则无法正常安装。
虽然 PEP 440 和扩展 PyPI 不需要 SemVer,但 HALCON/Python 和其他语言接口包遵循 SemVer 方法以避免不必要的冲突和工具问题。
但是,HALCON 版本不兼容 SemVer,因此 Python 包通过将主要版本、次要版本和修订版本组合成一个新的主要版本来接收 SemVer 兼容版本,例如:
  1. 20.11.0 → 20110.0.0
  2. 22.11.0 → 22110.0.0
  3. 22.11.1 → 22111.0.0
复制代码


再次查询下包列表:
  1. conda list
复制代码

7.png
可以看到增加了一个mvtec-halcon的包,说明已经成功安装了halcon支持。

接下来就可以在工程中创建一个halcon_demo.py的文件来运行下halcon代码了。
输入:
  1. import halcon as ha
复制代码

第一次写这个代码的提示halcon是没有找到的模块(很明显就是没有加载成功halcon环境)。
微信截图_20201210231817.png
点击"File"->"Settings"定位到下图位置:
8.png
在Python Interpreter中,发现还是用的Halcon_Python环境,这里如果没有halcon的就添加解释器即可,有的话直接选择halcon(参考上图)即可。
可以看到halcon环境中有mvtec-halcon模块以及它的版本信息20110,有了这个就可以使用halcon模块了。
这个时候回到工程,发现halcon模块已经没有报错了。

如果觉得命令行不好操作,那也可以直接用pycharm直接配置安装
微信截图_20210424150250.png
这里说明下,默认是自带的包管理器是没有mvtec的包的,我们需要切换到anaconda的包管理仓库,点击上图anaconda标识即可切换。
微信截图_20210424150701.png
然后再点击“+” 进行搜索“mvtec-halcon”包进行安装,等待完成即可,然后再切回到标准的包列表。

正式书写测试代码:
  1. import halcon as ha
  2. import os

  3. if __name__ == '__main__':
  4.     img = ha.read_image('pcb')
  5.     width,height = ha.get_image_size_s(img)
  6.     window = ha.open_window(
  7.         row=0,
  8.         column=0,
  9.         width=width,
  10.         height=height,
  11.         father_window=0,
  12.         mode='visible',
  13.         machine=''
  14.     )

  15.     region = ha.threshold(img,0,122)
  16.     num_regions = ha.count_obj(ha.connection(region))
  17.     print(f'Number of Regions:{num_regions}')
  18.     ha.disp_obj(img,window)
  19.     os.system("pause")
复制代码

右键Run 'halcon_demo(1)'这个选项,不出意外就可以运行了。

可以看到底部打印出的数据还有打开的窗口图像:
9.png
以及打开的窗口图像:
微信截图_20201210232917.png

记得最后把图片放到*.py文件同一级即可,该图片的位置在:
  1. C:\Users\Public\Documents\MVTec\HALCON-20.11-Progress\examples\images\pcb.png
复制代码


记得把20.11的halcon.dll、halconc.dll、halconcpp.dll、hdevenginecpp.dll放到py文件同级方便运行。
下载地址:https://www.51halcon.com/thread-4474-1-1.html
安装完Halcon20.11 Windows主程序以后就可以在安装目录bin/x64-win64下面拷贝了。
如果不拷贝就会出现打开的窗口是白色的,什么都没有。

程序和图像下载:
链接:https://pan.baidu.com/s/16i1lCSIfHY59qVwxGSSMdg
提取码:
游客,本帖隐藏的内容需要积分高于 10 才可浏览,您当前积分为 0


最后,如果代码无法查找到定义或者智能提示,是由于解析文件超大导致的,需要修改配置:
微信截图_20210424160336.png
修改位置:Helper -> Edit Custom Properties...   
微信图片_20210424160924.png
如果文件不存在,则会新建,然后加入代码:
微信截图_20210424160959.png
  1. idea.max.intellisense.filesize=25000
  2. idea.max.content.load.filesize=200000
复制代码
限定超过2.56MB不加载,我们改大些,25000代表25MB足够了。
重启Pycharm即可正常。

奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
雾里看花 发表于 2020-12-14 08:46:25 | 显示全部楼层
pycharm   有不收费的吗
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
luutry 发表于 2020-12-17 11:55:00 | 显示全部楼层
雾里看花 发表于 2020-12-14 08:46
pycharm   有不收费的吗

社区版的也挺好用的
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| Criss 发表于 2021-1-9 15:34:45 | 显示全部楼层

和halcon.dll放在同级目录试试!
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
小熙邵 发表于 2021-1-16 12:04:40 | 显示全部楼层
请教各位linux系统下安装的20.11 找不到halcon的动态链接库文件怎么解决呢?
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
tjufan 发表于 2021-3-31 16:07:34 | 显示全部楼层
按照步骤 安装成功  但是 dll 从哪找
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| Criss 发表于 2021-3-31 16:26:22 | 显示全部楼层
tjufan 发表于 2021-3-31 16:07
按照步骤 安装成功  但是 dll 从哪找
你不安装halcon,没有dll如何跑halcon程序?下载地址https://www.51halcon.com/forum.php?mod=viewthread&tid=4476
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
tjufan 发表于 2021-3-31 16:27:35 | 显示全部楼层
fengyingv 发表于 2020-12-11 10:38
非常感谢,终于可以运行了

您好, 我是halcon的小白,看到您能正常运行这个代码,请问那些dll文件能发给我一份吗? 邮箱 2298527958@qq.com, 十分感谢
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
牧乔 发表于 2021-5-19 16:35:16 | 显示全部楼层
dev_set_color()这种怎么改写代码啊?
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| Criss 发表于 2021-5-19 21:36:41 | 显示全部楼层
牧乔 发表于 2021-5-19 16:35
dev_set_color()这种怎么改写代码啊?
导出halcon改名为ha
  1. import halcon as ha
复制代码

设置颜色为红色
  1. ha.set_color(window,'red')
复制代码

设置十二种颜色交替显示
  1. ha.set_colored(window,12)
复制代码

原例子:
https://www.51halcon.com/forum.p ... &tid=4512&fromuid=3

完整代码改为:
  1. region = ha.threshold(img,0,122)
  2. connections = ha.connection(region)
  3. num_regions = ha.count_obj(connections)
  4. print(f'Number of Regions:{num_regions}')
  5. ha.disp_obj(img,window)
  6. ha.set_colored(window,12)
  7. ha.disp_obj(connections,window)
复制代码

综上,你会发现其实和C#类似。
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表