示例:数字识别

要识别的图片:

halcon与C#混合编程(三)数字识别halcon与C#混合编程(三)数字识别halcon与C#混合编程(三)数字识别

halcon与C#混合编程(三)数字识别halcon与C#混合编程(三)数字识别halcon与C#混合编程(三)数字识别

halcon与C#混合编程(三)数字识别halcon与C#混合编程(三)数字识别halcon与C#混合编程(三)数字识别

halcon源码:

   1: *读取图片
'D:/MyFile/halcon/数字识别/1.jpg')
   3:  
   4: *图像处理
   5: decompose3(Image, ImageR, ImageG, ImageB)
   6: threshold (ImageG, Regions, 0, 183)
   7: connection (Regions, Connection)
   8:  
'and', 1987.72, 7500)
  10:  
'Document_0-9.omc',OCRHandle)
  12: do_ocr_multi_class_mlp(SelectedRegions,ImageG,OCRHandle, Class, Confidence)

halcon导出的C#代码:

//
//  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#
   6:  
using System;
using HalconDotNet;
   9:  
class HDevelopExport
  11: {
public HTuple hv_ExpDefaultWinHandle;
  13:  
// Main procedure 
void action()
  16:   {
  17:  
// Local iconic variables 
  19:  
  20:     HObject ho_Image, ho_ImageR, ho_ImageG, ho_ImageB;
  21:     HObject ho_Regions, ho_Connection, ho_SelectedRegions;
  22:  
  23:  
// Local control variables 
  25:  
  26:     HTuple hv_OCRHandle, hv_Class, hv_Confidence;
  27:  
// Initialize local and output iconic variables 
out ho_Image);
out ho_ImageR);
out ho_ImageG);
out ho_ImageB);
out ho_Regions);
out ho_Connection);
out ho_SelectedRegions);
  36:  
//读取图片
  38:     ho_Image.Dispose();
);
  40:  
//图像处理
  42:     ho_ImageR.Dispose();
  43:     ho_ImageG.Dispose();
  44:     ho_ImageB.Dispose();
out ho_ImageB
  46:         );
  47:     ho_Regions.Dispose();
out ho_Regions, 0, 183);
  49:     ho_Connection.Dispose();
out ho_Connection);
  51:  
  52:     ho_SelectedRegions.Dispose();
, 
  54:         1987.72, 7500);
  55:  
out hv_OCRHandle);
  57:     HOperatorSet.DoOcrMultiClassMlp(ho_SelectedRegions, ho_ImageG, hv_OCRHandle, 
out hv_Confidence);
  59:  
  60:     ho_Image.Dispose();
  61:     ho_ImageR.Dispose();
  62:     ho_ImageG.Dispose();
  63:     ho_ImageB.Dispose();
  64:     ho_Regions.Dispose();
  65:     ho_Connection.Dispose();
  66:     ho_SelectedRegions.Dispose();
  67:  
  68:   }
  69:  
void InitHalcon()
  71:   {
// Default settings used in HDevelop 
);
  74:   }
  75:  
void RunHalcon(HTuple Window)
  77:   {
  78:     hv_ExpDefaultWinHandle = Window;
  79:     action();
  80:   }
  81:  
  82: }
  83:  

C#工程:

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;
   9:  
using HalconDotNet;
  11:  
  12:  
namespace NumericalRecognition
  14: {
class FormMain : Form
  16:     {
//增加代码:
new HDevelopExport();
string ImagePath;
  20:  
public FormMain()
  22:         {
  23:             InitializeComponent();
false;
  25:         }
  26:  
object sender, EventArgs e)
  28:         {
;
  30:  
true;
  32:  
  33:             openFileDialog1.FilterIndex = 1;
  34:  
if (openFileDialog1.ShowDialog() == DialogResult.OK)
  36:  
  37:             {
  38:  
  39:                 ImagePath = openFileDialog1.FileName;
  40:   
  41:                 HD.ReadImage(hWindowControl1.HalconWindow, ImagePath);
  42:   
true;
  44:   
  45:             }   
  46:         }
  47:  
object sender, EventArgs e)
  49:         {
  50:             HD.NumberRecognition();
  51:             labNumber.Text = HD.hv_Class.ToString();
  52:  
false;
  54:         }
  55:     }
  56:  
//halcon导出的类
class HDevelopExport
  59:     {
public HTuple hv_ExpDefaultWinHandle;
  61:  
  62:         HObject ho_Image, ho_ImageR, ho_ImageG, ho_ImageB;
  63:         HObject ho_Regions, ho_Connection, ho_SelectedRegions;
  64:  
  65:  
// Local control variables 
  67:         HTuple hv_OCRHandle,  hv_Confidence;
public HTuple hv_Class;
  69:  
void InitHalcon()
  71:         {
// Default settings used in HDevelop 
);
  74:         }
  75:  
string ImagePath)
  77:         {
  78:             hv_ExpDefaultWinHandle = Window;
  79:  
// Initialize local and output iconic variables 
out ho_Image);
  82:             
//读取图片
  84:             ho_Image.Dispose();
out ho_Image, ImagePath);
  86:             HOperatorSet.DispObj(ho_Image, hv_ExpDefaultWinHandle);
  87:         }
  88:  
void NumberRecognition()
  90:         {
out ho_ImageR);
out ho_ImageG);
out ho_ImageB);
out ho_Regions);
out ho_Connection);
out ho_SelectedRegions);
//图像处理
  98:             ho_ImageR.Dispose();
  99:             ho_ImageG.Dispose();
 100:             ho_ImageB.Dispose();
out ho_ImageB
 102:                 );
 103:             ho_Regions.Dispose();
out ho_Regions, 0, 183);
 105:             ho_Connection.Dispose();
out ho_Connection);
 107:  
 108:             ho_SelectedRegions.Dispose();
,
 110:                 1987.72, 7500);
 111:  
out hv_OCRHandle);
 113:             HOperatorSet.DoOcrMultiClassMlp(ho_SelectedRegions, ho_ImageG, hv_OCRHandle,
out hv_Confidence);
 115:             
 116:  
 117:             ho_Image.Dispose();
 118:             ho_ImageR.Dispose();
 119:             ho_ImageG.Dispose();
 120:             ho_ImageB.Dispose();
 121:             ho_Regions.Dispose();
 122:             ho_Connection.Dispose();
 123:             ho_SelectedRegions.Dispose();
 124:  
 125:         }
 126:  
 127:     }
 128: }

运行结果:

halcon与C#混合编程(三)数字识别 halcon与C#混合编程(三)数字识别

相关文章: