halcon编程入门三——halcon联合vs

vs联合halcon配置

https://blog.csdn.net/u010881576/article/details/73649308

vs框架

1.创建窗口类
2.注册窗口类
3.创建窗口
4.更新显示窗口
5.消息映射机制
6.退出程序

软件编程

1.UI界面层
2.业务逻辑
3.数据层

vs联合halcon显示图片

1.打开halcon,编写图像显示代码或图像处理代码

read_image (Image, 'E:/中策/0308/030801/1')
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width/2, Height/2, 'black', WindowHandle)
dev_display (Image)

2.用下面按钮将代码导出
halcon编程入门三——halcon联合vs_第1张图片
选择导出目录和导出语言,选C++
halcon编程入门三——halcon联合vs_第2张图片
3.基于对话框,新建MFC文件,取名为test1。用Picture_Control控件添加一个图像显示控件,并更改ID为IDC_PICTURE,添加一个按钮,并设置名称为采集图像。右键导出的文件,用vs2017打开。
4.配置vs2017和halcon
选择项目——属性,并按以下方式进行配置
halcon编程入门三——halcon联合vs_第3张图片
halcon编程入门三——halcon联合vs_第4张图片
halcon编程入门三——halcon联合vs_第5张图片
将dll文件导入程序所在文件中:
dll文件所在目录:E:\halcon\bin\x64-win64
5.右键halcon导出的文件,用vs2017打开。
halcon编程入门三——halcon联合vs_第6张图片
导入halcon的.h文件到test1Dlg.cpp,并添加halcon的命名空间。

using namespace HalconCpp;

halcon编程入门三——halcon联合vs_第7张图片
在halcon的程序中找到action()函数,将以上变量复制到test1Dlg.cpp文件中,设置为全局变量,如下所示:
halcon编程入门三——halcon联合vs_第8张图片
双击按钮,添加点击事件,将halcon中的程序复制到按钮点击事件中:

void Ctest1Dlg::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码
	ReadImage(&ho_Image, "E:/中策/0308/030801/1");
	GetImageSize(ho_Image, &hv_Width, &hv_Height);
	SetWindowAttr("background_color", "black");

	HWND hwnd1;//定义窗口
	CRect rect;//定义区域

	GetDlgItem(IDC_PICTURE)->GetWindowRect(&rect);
	hwnd1 = GetDlgItem(IDC_PICTURE)->m_hWnd;
	LONG lWWindowID = (LONG)hwnd1;

	m_height[0] = rect.Height();
	m_width[0] = rect.Width();

	OpenWindow(0, 0, m_height, m_width, lWWindowID, "visible", "", &hv_WindowHandle);
	HDevWindowStack::Push(hv_WindowHandle);
	if (HDevWindowStack::IsOpen())
		DispObj(ho_Image, HDevWindowStack::GetActive());
}

你可能感兴趣的:(halcon,halcon)