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

zw·准专利·高保真二值图细部切分算法

zw·准专利·高保真二值图细部切分算法
     高保真二值图细部切分算法,是中国字体协会项目的衍生作品。
     说准专利算法,是因为对于图像算法的标准不了解,虽然报过专利,但不是这方面的,需要咨询专业的专利顾问。
     原型是用opencv+python实现的,因为Halcon,对于协会的设计师,门槛太高,所以,特意设计了一套opencv+python的live-cd,解压即可,无需配置。

 

      高保真二值图细部切分算法,初看很简单,其实很复杂。

      ps,简单的东西,往往更复杂,就像每天遇到的:URL协议,至今没有一个能够100%完全解析的模块库,包括IBM、java、微软、。。。。。。

      再如,目前火热的大数据、人工智能,核心算法还是k-v、和匹配。

      说白了,就是类似字符串的pos函数,不过这个字符串长度可能是10亿字节。

 

       高保真二值图细部切分算法,复杂度主要体现在以下几个方面:

    • 算法必须通用,国标二级,每套字库收录有6763个汉字。算法必须适用于每个汉字,而且必须多种字体通用
    • 全自动运行,不能采用交互模式,不然成本太高,参见上一条。
    • 高保真,传统ocr、车牌、人像、机器视觉,都没有这个限制,数据宽容度70%都可接受,这个算法,匹配度必须是99%以上
    • 缺少元数据,原始数据都是二值图,缺乏时间序列、深度、灰度等信息,像双目立体、点云、以及3D、VR系统,可以通过时间序列图片、光源、镜头变化,甚至多种传感器,多角度,对同一对象进行扫描,多角度采集数据,进行合成。

    

       中国传统书法,有很多飞白、泼墨的手法,产生了很多小孔、孤点,从图像学角度,这些都是细小的干扰区。

       传统的图像处理算法,例如车牌、人脸、工业监测等,只需经过简单的迭代过滤,即可解决。
       但对于书法作品而言,这些细节,却是作品整体,必不可少的组成部分。
       与工业图像处理相比,书法字体的图像,全部是二值图,
       表面看起来,这些图像数据源,非常干净,但因为缺乏细节,特别在笔画分解时,非常麻烦。

      书法作品,风格各异,变化万千,无法通过建模、模板匹配的手段分割,这个建库成本太高了。

 

      经多方检索,没有任何现成算法,可以参考,全部需要从零开始,自行开发。
      通过反复摸索、调试,最终,笔者成功通过图像形态学,结合轮廓匹配,完美的实现了相关功能,受到相关学者认可。

   

        图1,是原稿,                                                

 

图2,是切分后的效果       

         

      注意两图A处的笔画,已经分割,B、C、D等处泼墨效果,以及其他细节,完全保留。

       A处,是最难切分,而又保留细节的区域,其他横竖结合部,切割很简单,就不在此介绍了。

      这个切割算法的另外一个难点在于,国标二级,每一套字库,都收录有6763个汉字,

      算法必须通用,每套字库的所有字形,以及各种其他字库,全部适用。

       不然,单独对每一个字进行分割,单套开发、实施成本,就无法接受,更别说多套字库了,

      另外,附录的几张图,是其他处理环节的截图,供参考。

     

 

转载于:https://www.cnblogs.com/ziwang/p/4854089.html

相关文章:

  • [ IOS ] iOS-控制器View的创建和生命周期
  • 使用Java对文件进行解压缩
  • 《自信力~成为更好的自己》晨读笔记
  • Spring aop:decare-parent 为类增加新的方法
  • 在resin配置參数实现JConsole远程监控JVM
  • 同样加班 不同收获(转)
  • 使用Java语言开发微信公众平台(八)——自定义菜单功能
  • SPRING-MVC 访问静态资源
  • IE6下position:fixed不支持问题及其解决方式
  • Erlang库 -- 有意思的库汇总
  • 《大数据算法》一2.3 时间亚线性判定算法概述
  • 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
  • Setfocus - IE 需要使用setTimeout
  • linux 文件名编码批量转换
  • zabbix监控:监控windows进程
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 「译」Node.js Streams 基础
  • 3.7、@ResponseBody 和 @RestController
  • CSS相对定位
  • Fabric架构演变之路
  • Flex布局到底解决了什么问题
  • Java面向对象及其三大特征
  • JS 面试题总结
  • nodejs:开发并发布一个nodejs包
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • React16时代,该用什么姿势写 React ?
  • socket.io+express实现聊天室的思考(三)
  • 动态规划入门(以爬楼梯为例)
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 力扣(LeetCode)965
  • 前端
  • 前言-如何学习区块链
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • RDS-Mysql 物理备份恢复到本地数据库上
  • #Java第九次作业--输入输出流和文件操作
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #NOIP 2014# day.1 T2 联合权值
  • #NOIP 2014#Day.2 T3 解方程
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • ${ }的特别功能
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (poj1.2.1)1970(筛选法模拟)
  • (poj1.3.2)1791(构造法模拟)
  • (二)WCF的Binding模型
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (四)linux文件内容查看
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (转)EOS中账户、钱包和密钥的关系
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • .gitignore文件设置了忽略但不生效
  • .NET : 在VS2008中计算代码度量值
  • .Net Web项目创建比较不错的参考文章
  • .Net(C#)常用转换byte转uint32、byte转float等