使用WPF和Halcon打開圖片的例子
在圖像視覺領域,有時候使用Halcon會更加方便。本文將介紹一種使用WPF和Halcon打開圖片的例子,供參考。 新建WPF工程并設置屬性 首先新建一個WPF工程,在解決方案資源管理器中選中當前工
在圖像視覺領域,有時候使用Halcon會更加方便。本文將介紹一種使用WPF和Halcon打開圖片的例子,供參考。
新建WPF工程并設置屬性
首先新建一個WPF工程,在解決方案資源管理器中選中當前工程項目,右鍵點擊【屬性】,彈出屬性界面。在屬性界面中選擇【生成】項,并勾選【允許不安全代碼】。
添加引用和準備圖片
下載所需的halcondotnet.dll、halcon.dll、halcondotnet.xml、halconxl.dll,并將它們添加到生成目錄下。同時,準備一張RGB圖片,并將其重命名為""。
在XAML頁面中添加代碼
在MainWindow.xaml頁面中,將以下代碼添加到Window標簽內(nèi)部:
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類的構造函數(shù)中:
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