aardio+halcon的OCR的示例程序

By 笑口常开 at 2019-03-18 • 0人收藏 • 403人看过

指定字体的名称用于读取序列号。简单使用Industrial_0-9A-Z_NoRej pre-trained字体。

Halcon源程序位于:

C:\Program Files\MVTec\HALCON-13.0\examples\hdevelop\Applications\OCR\engraved.hdev

image.png

import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio+halcon ,OCR识别示例, Htmlayout.cn";right=1007;bottom=611)
winform.add(
button={cls="button";text="Button";left=15;top=41;right=223;bottom=108;z=1};
picturebox={cls="picturebox";left=258;top=0;right=1008;bottom=612;z=2}
)
/*}}*/

import console
console.open()

import com
var HOperatorSetX = com.CreateObject("{6ebd90e2-d219-11d2-ade5-0000c00f4ef9}")
var Image = HOperatorSetX.ReadImage( "img/engraved.png" );
var Width , Height = HOperatorSetX.GetImageSize( Image );
var WindowHandle = HOperatorSetX.OpenWindow( 0 , 0 , winform.picturebox.width , winform.picturebox.height , winform.picturebox.hwnd , "transparent" , "" );
HOperatorSetX.DispObj( Image , WindowHandle );
HOperatorSetX.SetDraw( WindowHandle , "margin" );
HOperatorSetX.SetLineWidth( WindowHandle , 3 );
HOperatorSetX.SetColor( WindowHandle , "red" );
var Font = HOperatorSetX.QueryFont( WindowHandle );
HOperatorSetX.SetFont( WindowHandle , Font[1]++"-Bold-30" );

winform.button.oncommand = function(id,event){
	var ImageResult = HOperatorSetX.GrayRangeRect( Image , 7 , 7 );
	var ImageInvert = HOperatorSetX.InvertImage( ImageResult );
	var Region = HOperatorSetX.Threshold( ImageResult , 128 , 255 );
	var ConnectedRegions = HOperatorSetX.Connection( Region );
	var SelectedRegions = HOperatorSetX.SelectShape( ConnectedRegions , 'area', 'and', 1000, 99999 );
	var SortedRegions = HOperatorSetX.SortRegion( SelectedRegions , 'first_point', 'true', 'column' );
	HOperatorSetX.SetColored( WindowHandle , 6 );
	HOperatorSetX.SetShape( WindowHandle , 'original' );
	HOperatorSetX.SetLineWidth( WindowHandle , 2 );
	HOperatorSetX.DispObj( ImageInvert , WindowHandle );
	HOperatorSetX.DispObj( SortedRegions , WindowHandle );
	win.delay(2000)
	
	HOperatorSetX.SetShape( WindowHandle , 'rectangle1' );
	HOperatorSetX.DispObj( Image , WindowHandle );
	HOperatorSetX.DispObj( SortedRegions , WindowHandle );
	var RegionTrans = HOperatorSetX.ShapeTrans( SortedRegions , 'rectangle1' );
	var Area , Row , Column = HOperatorSetX.AreaCenter( RegionTrans );
	var MeanRow = HOperatorSetX.TupleMean( Row );
	var Number = HOperatorSetX.CountObj( SortedRegions );
	var OCRHandle = HOperatorSetX.ReadOcrClassMlp( 'Industrial_0-9A-Z_NoRej' );
	for(i=1;Number;1){
		var ObjectSelected = HOperatorSetX.SelectObj( SortedRegions , i );
		var Class , Confidence = HOperatorSetX.DoOcrSingleClassMlp( ObjectSelected ,ImageInvert, OCRHandle, 1 );
		HOperatorSetX.DispText( WindowHandle , Class , 'image' , MeanRow - 80 , Column[i] - 10 , 'yellow' , 'box' , 'false' );
	}
	
	HOperatorSetX.ClearOcrClassMlp( OCRHandle );
	
	
	
}

winform.show();
win.loopMessage();
return winform;

从上面代码里, 可以学到设置显示字体和大小

var Font = HOperatorSetX.QueryFont( WindowHandle );
HOperatorSetX.SetFont( WindowHandle , Font[1]++"-Bold-30" );



登录后方可回帖

登 录
信息栏
本站永久域名:HtmLayout.Cn
纯私人站,当笔记本用的,学到哪写到哪,目前正在学aardio+halcon机器视觉.
本 站 主 站:Stm32cube中文网
Aardio 官方站:Aardio官方
Aardio最新功能:Aardio官方更新日志
黑猫Aar教程网:简码编程
C大Aardio论坛:Aar爱好者论坛
AARDIO语言QQ群:70517368
赞助商:才仁机械
下载站:非凡软件站
Loading...