您的位置:首页 > 编程语言 > C#

halcon与C#混合编程(二)读取并处理图片

2013-02-03 15:20 246 查看
示例:读取并处理图片

halcon源码:

[code] *读取图片


read_image(Image,'D:/MyFile/C#/HalconCsExample/示例图片.jpg')


get_image_size(Image,Width,Height)




*图像处理


rgb1_to_gray(Image,GrayImage)

[/code]

导出的代码(ImagePro):

[code]//


//File generated by HDevelop for HALCON/DOTNET (C#) Version 10.0


//


//This file is intended to be used with the HDevelopTemplate or


//HDevelopTemplateWPF projects located under %HALCONEXAMPLES%\c#




using System;


using HalconDotNet;




public partial class HDevelopExport


{


 public HTuple hv_ExpDefaultWinHandle;




// Main procedure 


 private void action()


{




// Local iconic variables 




 HObject ho_Image, ho_GrayImage;






// Local control variables 




 HTuple hv_Width, hv_Height;




// Initialize local and output iconic variables 


 HOperatorSet.GenEmptyObj(out ho_Image);


 HOperatorSet.GenEmptyObj(out ho_GrayImage);




//读取图片


//dev_close_window(...);


 ho_Image.Dispose();


 HOperatorSet.ReadImage(out ho_Image, "D:/MyFile/C#/HalconCsExample/示例图片.jpg");


 HOperatorSet.GetImageSize(ho_Image, out hv_Width, out hv_Height);


//dev_open_window(...);


 HOperatorSet.DispObj(ho_Image, hv_ExpDefaultWinHandle);




//图像处理


 ho_GrayImage.Dispose();


 HOperatorSet.Rgb1ToGray(ho_Image, out ho_GrayImage);


 HOperatorSet.DispObj(ho_GrayImage, hv_ExpDefaultWinHandle);




 ho_Image.Dispose();


 ho_GrayImage.Dispose();




}




 public void InitHalcon()


{


// Default settings used in HDevelop 


 HOperatorSet.SetSystem("do_low_error", "false");


}




 public void RunHalcon(HTuple Window)


{


 hv_ExpDefaultWinHandle = Window;


 action();


}




}



[/code]

C#工程:


[code]using System;


using System.Collections.Generic;


using System.ComponentModel;


using System.Data;


using System.Drawing;


using System.Linq;


using System.Text;


using System.Windows.Forms;




using HalconDotNet;//添加引用




namespace HalconCsExample


{


 public partial class Form1 : Form


{


//增加代码:


 HDevelopExport HD = new HDevelopExport();


 string ImagePath;




 public Form1()


{


 InitializeComponent();


 this.btnImagePro.Enabled = false;


}




 private void btnReadImage_Click(object sender, EventArgs e)


{


 openFileDialog1.Filter = "JPEG文件|*.jpg*|BMP文件|*.bmp*|TIFF文件|*.tiff*";


 openFileDialog1.RestoreDirectory = true;


 openFileDialog1.FilterIndex = 1;


 if (openFileDialog1.ShowDialog() == DialogResult.OK)


{


 ImagePath = openFileDialog1.FileName;


 HD.ReadImage(hWindowControl1.HalconWindow, ImagePath);


 this.btnImagePro.Enabled = true;


} 


}




 private void btnImagePro_Click(object sender, EventArgs e)


{


 HD.ImagePro();


 this.btnImagePro.Enabled = false;


}


}




//从导出的ReadImage.cs中拷贝HDevelopExport类到命名空间 HalconCsExample


public partial class HDevelopExport


{


 public HTuple hv_ExpDefaultWinHandle;


// Local iconic variables 


 HObject ho_Image, ho_GrayImage;






 public void InitHalcon()


{


// Default settings used in HDevelop 


 HOperatorSet.SetSystem("do_low_error", "false");


}




 public void ReadImage(HTuple Window,string path)


{


 hv_ExpDefaultWinHandle = Window;




// Initialize local and output iconic variables 


 HOperatorSet.GenEmptyObj(out ho_Image);


 HOperatorSet.GenEmptyObj(out ho_GrayImage);


 


//读取图片


//dev_close_window(...);


 ho_Image.Dispose();


 HOperatorSet.ReadImage(out ho_Image, path);




//dev_open_window(...);


 HOperatorSet.DispObj(ho_Image, hv_ExpDefaultWinHandle);


}




 public void ImagePro()


{


//图像处理


 ho_GrayImage.Dispose();


 HOperatorSet.Rgb1ToGray(ho_Image, out ho_GrayImage);


 HOperatorSet.DispObj(ho_GrayImage, hv_ExpDefaultWinHandle);




 ho_Image.Dispose();


 ho_GrayImage.Dispose();




}




}


}

[/code]

运行结果:





单击读取图片按钮并选取图片:





点击图像处理按钮:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: