示例:数字识别
要识别的图片:
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: }
运行结果: