2016 - 2024

感恩一路有你

使用WPF和Halcon打开图片的例子

浏览量:3174 时间:2024-06-30 08:10:57 作者:采采

在图像视觉领域,有时候使用Halcon会更加方便。本文将介绍一种使用WPF和Halcon打开图片的例子,供参考。

新建WPF工程并设置属性

首先新建一个WPF工程,在解决方案资源管理器中选中当前工程项目,右键点击【属性】,弹出属性界面。在属性界面中选择【生成】项,并勾选【允许不安全代码】。

添加引用和准备图片

下载所需的halcondotnet.dll、halcon.dll、halcondotnet.xml、halconxl.dll,并将它们添加到生成目录下。同时,准备一张RGB图片,并将其重命名为""。

在XAML页面中添加代码

在MainWindow.xaml页面中,将以下代码添加到Window标签内部:

lt;Window x:Class""
        xmlns""
        xmlns:x""
        Title"MainWindow" Height"350" Width"525"gt;
    lt;Grid Name"mygrid"gt;
    lt;/Gridgt;
lt;/Windowgt;

在C页面中添加代码

在MainWindow.xaml.cs页面中,将以下代码添加到MainWindow类的构造函数中:

using HalconDotNet;
using System;
using ;
using ;
using ;
using System.Text;
using ;
using ;
using ;
using ;
using ;
using ;
using ;
using ;
using ;
using ;
namespace HalconTest
{
    /// 
    /// MainWindow.xaml 的交互逻辑
    /// 
    public partial class MainWindow : Window
    {
        public unsafe MainWindow()
        {
            InitializeComponent();
            HObject image;
            (out image, "");
            HImage h_image  new HImage();
            HTuple t;
            HTuple w;
            HTuple h;
            HTuple pointerRed;
            HTuple pointerGreen;
            HTuple pointerBlue;
            (image, out pointerRed, out pointerGreen, out pointerBlue, out t, out w, out h);
            h_(t, w, h, pointerRed, pointerGreen, pointerBlue);
            string t2;
            int w2;
            int h2;
            IntPtr pr, pg, pb;
            h_(out pr, out pg, out pb, out t2, out w2, out h2);
            int len  w * h;
            byte[] datar  new byte[len];
            byte[] datag  new byte[len];
            byte[] datab  new byte[len];
            (pr, datar, 0, len);
            (pg, datag, 0, len);
            (pb, datab, 0, len);
            h_image.Dispose();
            byte[] data  new byte[len * 3];
            fixed (byte* bp  data, bbp  datab, brp  datar, bgp  datag)
            {
                byte* b  bp;
                byte* bb  bb          

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。