1、halcon导出函数
read_image(Image, '1.png') get_image_size (Image, Width, Height) dev_open_window (0, 0, Width-500, Height-500, 'black', WindowHandle) dev_display (Image)
2、使用导出的C#代码
4、修改导出的 cs程序
1、HObject修改为公开属性
2、封装Dispose函数
5、wpf使用导出代码显示图片
6、 1.png 图片记得放在程序的执行目录下面
// // File generated by HDevelop for HALCON/.NET (C#) Version 17.12 // using HalconDotNet;public partial class HDevelopExport { #if !(NO_EXPORT_MAIN || NO_EXPORT_APP_MAIN)public HDevelopExport(){// Default settings used in HDevelopHOperatorSet.SetSystem("width", 512);HOperatorSet.SetSystem("height", 512);if (HalconAPI.isWindows)HOperatorSet.SetSystem("use_window_thread", "true");action();}#endif#if !NO_EXPORT_MAINpublic HObject ho_Image;public void Dispose(){ho_Image?.Dispose();}// Main procedureprivate void action(){// Local iconic variables// Local control variables HTuple hv_Width = null, hv_Height = null, hv_WindowHandle = null;// Initialize local and output iconic variablesHOperatorSet.GenEmptyObj(out ho_Image);ho_Image.Dispose();HOperatorSet.ReadImage(out ho_Image, "1.png");HOperatorSet.GetImageSize(ho_Image, out hv_Width, out hv_Height);HOperatorSet.SetWindowAttr("background_color", "black");//HOperatorSet.OpenWindow(0, 0, hv_Width - 500, hv_Height - 500, 0, "visible", "", out hv_WindowHandle);//HDevWindowStack.Push(hv_WindowHandle);//if (HDevWindowStack.IsOpen())//{// HOperatorSet.DispObj(ho_Image, HDevWindowStack.GetActive());//}// ho_Image.Dispose(); }#endif }#if !(NO_EXPORT_MAIN || NO_EXPORT_APP_MAIN)public class HDevelopExportApp {private static void Main(string[] args){new HDevelopExport();} }#endif
using HalconDotNet; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes;namespace HalconDemoTest.Modules.ModuleName.Views {/// <summary>/// Interaction logic for ViewA.xaml/// </summary>public partial class ViewA : UserControl{public ViewA(){InitializeComponent();}private void HSmartWindowControlWPF_Loaded(object sender, RoutedEventArgs e){var pictureCtrl = sender as HSmartWindowControlWPF;HDevelopExport hDevelopExport = new HDevelopExport();pictureCtrl.HalconWindow.DispObj(hDevelopExport.ho_Image);}} }
<UserControl x:Class="HalconDemoTest.Modules.ModuleName.Views.ViewA"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:local="clr-namespace:HalconDemoTest.Modules.ModuleName.Views"xmlns:prism="http://prismlibrary.com/"xmlns:HalconDotNet="clr-namespace:HalconDotNet;assembly=halcondotnet"prism:ViewModelLocator.AutoWireViewModel="True"><Grid><HalconDotNet:HSmartWindowControlWPF Name="WindowControl" Width="{Binding ElementName=WidthSlider, Path=Value}"Height="600" Loaded="HSmartWindowControlWPF_Loaded"Grid.Row="1" Grid.Column="1" /></Grid> </UserControl>