aardio+halcon的OCR的示例程序

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

指定字体的名称用于读取序列号。简单使用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识别示例, Aardio.com.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" );



登录后方可回帖

登 录
信息栏
 私人小站

本站域名

ChengXu.XYZ

投诉联系:  popdes@126.com



快速上位机开发学习,本站主要记录了学习过程中遇到的问题和解决办法及上位机代码分享

这里主要专注于学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.
如果侵权,联系 Popdes@126.com

友情链接
Aardio官方
Aardio资源网


才仁机械


网站地图SiteMap

Loading...