当前位置: 首页 > news >正文

做vi设计的网站网络营销推广思路

做vi设计的网站,网络营销推广思路,彩票代理平台,django做待办事项网站HALCON示例程序bottle.hdev、bottlet.hdev瓶体字符OCR的训练和检测 示例程序源码#xff08;加注释#xff09; 1、先介绍bottlet.hdev#xff08;训练OCR识别文件#xff09; *定义一个字符串变量FontName #xff0c;内容是bottle FontName : ‘bottle’ *第一步分割…HALCON示例程序bottle.hdev、bottlet.hdev瓶体字符OCR的训练和检测 示例程序源码加注释 1、先介绍bottlet.hdev训练OCR识别文件 *定义一个字符串变量FontName 内容是bottle FontName : ‘bottle’ *第一步分割字符以便单独对字体进行训练 Step 1: Segmentation *窗口显示更新关闭 dev_update_window (‘off’) *读入图片 read_image (Bottle, ‘bottle2’) *得到读入图片大小 get_image_size (Bottle, Width, Height) *关闭显示窗口 dev_close_window () *根据刚刚获得的图片大小创建图片大小二倍的窗口 dev_open_window (0, 0, 2 * Width, 2 * Height, ‘black’, WindowID) *设置字体显示格式 set_display_font (WindowID, 27, ‘mono’, ‘true’, ‘false’) *对读入图片进行阈值分割 threshold (Bottle, RawSegmentation, 0, 95) *对区域面积在1-5之间的进行孔洞填充目的就是为了消除噪声。 fill_up_shape (RawSegmentation, RemovedNoise, ‘area’, 1, 5) *使用半径位2.5的圆形元素进行开运算 opening_circle (RemovedNoise, ThickStructures, 2.5) *进行孔洞填充 fill_up (ThickStructures, Solid) *使用宽7高1的矩形元素对区域进行开运算 opening_rectangle1 (Solid, Cut, 1, 7) *分割连通域 connection (Cut, ConnectedPatterns) *取区域ConnectedPatterns与区域ThickStructures的交集将字符的原本形态恢复之前对字符也进行了填 *充是怕进行开运算的时候把字符也给干掉 intersection (ConnectedPatterns, ThickStructures, NumberCandidates) *使用面积对区域进行筛选筛选出面积在300-9999的区域 select_shape (NumberCandidates, Numbers, ‘area’, ‘and’, 300, 9999) *对区域进行排序按照列从第一列到最后一列按照升序进行排列。这个算子之前介绍过了哈 sort_region (Numbers, FinalNumbers, ‘first_point’, ‘true’, ‘column’) *显示下面的算子之前的都进行了介绍这里就不进行细说了。 dev_display (Bottle) dev_set_color (‘green’) dev_set_line_width (2) dev_set_shape (‘rectangle1’) dev_set_draw (‘margin’) dev_display (FinalNumbers) *第二步进行训练前相关准备排序与定义分割出的区域代表字符。 Step2: Training file generation *根据上文分割出的字符区域从左到右的顺序将他们的命名存入TrainingNames 数组变量中其实就是你的 *字符是啥你就在这个训练数组里写入什么让halcon知道你刚刚分割出的字符的含义。 TrainingNames : [‘0’,‘1’,‘0’,‘8’,‘9’,‘4’] *定义训练出来的文件的路径与文件名。这里强调一下哈这里没有路径是因为它会把训练文件存入halcon的 *默认路径中我们想把训练文件存在我们想要的地方就得这么写TrainingFileName : C:/ ‘.trf’。 TrainingFileName : FontName ‘.trf’ *对区域进行排序按照列从第一列到最后一列按照升序进行排列。和上边一样 sort_region (FinalNumbers, SortedRegions, ‘first_point’, ‘true’, ‘column’) *分别求取每一个字符的最小外接矩形 shape_trans (SortedRegions, RegionTrans, ‘rectangle1’) *求取每个区域的面积与中心坐标 area_center (RegionTrans, Area, Row, Column) *mean这个算子返回数组中元素的平均值。这里MeanRow 就是字符平均行位置 MeanRow : mean(Row) *halcon的异常处理程序运行正常的话程序会继续运行如果出错显示错误内容弹窗。在这里为了检查求取 *数组均值是否完成咱们设想一下如果咱们提取字符没提取出来area_center 求取的Row为空那么进 *行均值计算的时候除以0程序就会崩溃。 dev_set_check (’~give_error’) *删除文件TrainingFileName delete_file (TrainingFileName) *这里再进行异常检查如果这个文件正在打开或者被使用是删除不了的所以还要进行异常检查 dev_set_check (‘give_error’) *下边一段代码是把刚刚咱么在TrainingNames 的数字按照分割出字符的位置进行一个显示为了什么呢就 *是为了让我们直观的看到我们存入TrainingNames 的字符与咱们分割出的是不是一一对应如果不对应则会 *导致训练出的文件是错的。 for i : 0 to |TrainingNames| - 1 by 1 select_obj (SortedRegions, CharaterRegions, i 1) append_ocr_trainf (CharaterRegions, Bottle, TrainingNames[i], TrainingFileName) disp_message (WindowID, TrainingNames[i], ‘image’, MeanRow - 40, Column[i] - 6, ‘yellow’, ‘false’) endfor *第三部训练 Step3: Training *sort按照升序对数组元素进行排列tuple_uniq - 丢弃元组中连续相同元素。那么我们最开始的数组 *[‘0’,‘1’,‘0’,‘8’,‘9’,‘4’]先进行升序排列得到[‘0’,‘0’,‘1’,‘4’,‘8’,‘9’]之后剔除相同元素得到[‘0’,‘1’,‘4’,‘8’,‘9’] *最终CharNames [‘0’,‘1’,‘4’,‘8’,‘9’] CharNames : uniq(sort(TrainingNames)) *create_ocr_class_mlp - 使用多层感知器创建OCR分类器。 *函数原型create_ocr_class_mlp:: WidthCharacterHeightCharacterInterpolationFeaturesCharactersNumHiddenPreprocessingNumComponentsRandSeedOCRHandle *WidthCharacter字符宽度HeightCharacter字符高度Interpolation插值Features方式 *Characters字符NumHidden字符数量Preprocessing预处理NumComponents组件数量 *RandSeed随机数数量OCRHandleOCR训练句柄。 create_ocr_class_mlp (8, 10, ‘constant’, ‘default’, CharNames, 5, ‘none’, 10, 42, OCRHandle) *trainf_ocr_class_mlp - 训练OCR分类器。 *函数原型trainf_ocr_class_mlp:: OCRHandleTrainingFileMaxIterationsWeightToleranceErrorToleranceErrorErrorLog *OCRHandleOCR识别句柄TrainingFile训练文件名与路径MaxIterations最大迭代次数 *WeightTolerance错误公差Error错误ErrorLog错误日志。 trainf_ocr_class_mlp (OCRHandle, TrainingFileName, 200, 1, 0.01, Error, ErrorLog) *将训练好的ocr文件写入指定位置。其实就是把训练文件保存下来。 write_ocr_class_mlp (OCRHandle, FontName) *清除OCR训练句柄。 clear_ocr_class_mlp (OCRHandle) 2、介绍bottlet.hdevOCR识别 *定义一个字符串变量FontName 内容是Industrial_0-9_NoRej FontName : ‘Industrial_0-9_NoRej’ *第一步分割字符 Step 1: Segmentation *显示读入图片操作之前介绍过了这里就不介绍了 dev_update_window (‘off’) read_image (Bottle, ‘bottle2’) get_image_size (Bottle, Width, Height) dev_close_window () dev_open_window (0, 0, 2 * Width, 2 * Height, ‘black’, WindowID) set_display_font (WindowID, 16, ‘mono’, ‘true’, ‘false’) dev_display (Bottle) disp_continue_message (WindowID, ‘black’, ‘true’) stop () 创建读入ocr训练文件 create_text_model_reader (‘auto’, FontName, TextModel)设置文本模型的参数最小字符宽度为5 set_text_model_param (TextModel, ‘min_stroke_width’, 5)文本行的结构 set_text_model_param (TextModel, ‘text_line_structure’, ‘2 2 2’)在图像中查找文本 find_text (Bottle, TextModel, TextResultID)显示字符分割结果 get_text_object (Characters, TextResultID, ‘all_lines’) dev_display (Bottle) dev_display (Characters) stop ()显示识别的字符结果 get_text_result (TextResultID, ‘class’, Classes) area_center (Characters, Area, Row, Column) for Index : 0 to |Classes| - 1 by 1 disp_message (WindowID, Classes[Index], ‘image’, 80, Column[Index] - 3, ‘green’, ‘false’) endfor释放内存清理结果句柄 clear_text_result (TextResultID) *清除OCR识别句柄 clear_text_model (TextModel) 处理思路 这个就是一个简单的OCR字符从分割到训练文本到识别的一个步骤。希望能帮助到大家。 后记 大家有什么问题可以向我提问哈我看到了第一时间回复希望在学习的路上多多结交良师益友。
http://www.pierceye.com/news/662045/

相关文章:

  • 长沙专业网站建设怎么做云南昆明百度推广公司
  • 网页制作网站的大作业网站开发怎么设置打印按钮
  • 金乡网站建设哪家便宜建网站解决方案
  • 大港油田建设官方网站怎么帮人做网站
  • nginx建设网站教程wordpress文章列表格子
  • 山东网站开发学校深圳福田网站建设公司
  • 做电商网站的框架结构图江西省住房和城乡建设厅
  • 运输网站建设网站上的销售怎么做的
  • ps做网站首页效果图潮安区住房和城乡建设局网站
  • 商业网站怎么做做图赚钱的网站
  • 如何建立微信网站工作室暴利项目
  • 购物网站建设模板下载家在深圳 歌曲
  • wordpress 网站搬迁网站改版提交给百度
  • 黄山网站建设免费咨询网页制作初学者
  • 小说网站模板温州建设集团有限公司网站
  • 医疗器械为什么做网站杭州网站制作培训
  • 村志网站建设品牌设计logo图片
  • 网站更新服务公司网页打不开显示404要怎么处理
  • 注册公司是在哪个网站网站建设案例步骤
  • 机械设备网站源码中国神鹰网站建设
  • access 网站源码安阳市地图
  • 临沂房产和房建设局网站双和关键词排名怎么查
  • 建网站多少费用301不同类型网站
  • 深圳seo网站排名优化贵州省都匀市网站建设
  • 个人网站风格设计做网站时需要注意什么问题
  • 时装网站建设的背景软装设计费用
  • 排名轻松seo 网站国内开源平台
  • 常德做网站公司哪家好雷达图 做图网站
  • 做网站的环境配置wordpress手机版本
  • 市场网站建设济南智能网站建设