halcon + vs2017联合使用显示图片
一、halcon12与vs2017联合使用案例
先看案例的结果
案例结果
点击开始按钮显示图片
二、使用步骤
1.新建Halcon工程,读入图片
代码如下(示例):
read_image(Image,'E:/Images/Display/renwu1.jpg')
dev_open_window_fit_image(Image,0,0,-1,-1,WindowHandle)
dev_clear_window()
dev_display(Image)
2.Halcon中读入图片的结果
3.将Halcon程序导出为C++程序
导出之后就能在对应路径下看到一个Halcon.cpp文件,这个文件的内容如下:
先声明并给出了函数dev_open_window_fit_image的定义:
void dev_open_window_fit_image (HObject ho_Image, HTuple hv_Row, HTuple hv_Column,
HTuple hv_WidthLimit, HTuple hv_HeightLimit, HTuple *hv_WindowHandle);
然后是函数Action的定义,Action里的代码对应着刚才Halcon中的代码,简单地说,就是把Halcon语言翻译成C++了。
代码如下(示例):
// Main procedure
void action()
{
// Local iconic variables
HObject ho_Image;
// Local control variables
HTuple hv_WindowHandle;
ReadImage(&ho_Image, "E:/Images/Display/renwu1.jpg");
dev_open_window_fit_image(ho_Image, 0, 0, -1, -1, &hv_WindowHandle);
if (HDevWindowStack::IsOpen())
ClearWindow(HDevWindowStack::GetActive());
if (HDevWindowStack::IsOpen())
DispObj(ho_Image, HDevWindowStack::GetActive());
}
配置vs2017
新建MFC工程
按照vs新建对话框工程,添加开始按钮
配置步骤
1、菜单栏的视图->属性管理器右键属性(注意修改为x64),包含目录
2、VC++库目录
3、在C/C++目录中
4、链接器-常规
5、链接器-输入
6、显示图片
为了实现显示图片的功能,在对话框中添加一个按钮,并双击按钮进入事件响应函数
void CHalconCameraDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
}
7、添加头文件
#include"HalconCpp.h"
using namespace HalconCpp;
8、拷贝halcon.cpp中的函数dev_open_window_fit_image
声明在HalconCameraDlg.h
定义在HalconCameraDlg.cpp
注意:在类外声明!!!
9、把Action中的代码拷贝到OnBnClickedButton1() 中,这样点击按钮就会执行在halcon中实现的显示图片功能了
void CHalconCameraDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
// Local iconic variables
HObject ho_Image;
// Local control variables
HTuple hv_WindowHandle;
ReadImage(&ho_Image, "E:/Images/Display/renwu1.jpg");
dev_open_window_fit_image(ho_Image, 0, 0, -1, -1, &hv_WindowHandle);
if (HDevWindowStack::IsOpen())
ClearWindow(HDevWindowStack::GetActive());
if (HDevWindowStack::IsOpen())
DispObj(ho_Image, HDevWindowStack::GetActive());
}
三、结果
Note:
文中配置halcon的路径根据自己按照的路径来配置,