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个汉字,
算法必须通用,每套字库的所有字形,以及各种其他字库,全部适用。
不然,单独对每一个字进行分割,单套开发、实施成本,就无法接受,更别说多套字库了,
另外,附录的几张图,是其他处理环节的截图,供参考。

zw·准专利·高保真二值图细部切分算法的更多相关文章
- opencv删除二值图中较小的噪点色块
CvSeq* contour = NULL; double minarea = 100.0; double tmparea = 0.0; CFileDialog dlg(true); if (dlg. ...
- 用 Python 通过马尔可夫随机场(MRF)与 Ising Model 进行二值图降噪
前言 这个降噪的模型来自 Christopher M. Bishop 的 Pattern Recognition And Machine Learning (就是神书 PRML……),问题是如何对一个 ...
- c语言实现灰度图转换为二值图
将上篇得到的灰度图转换为二值图,读取像素数据,低于某一值置0,否则设置为255,为得到更好的效果不同图片应采用不同的值 /* 2015年6月2日11:16:22 灰度图转换为二值图 blog:http ...
- 使用OpenCV查找二值图中最大连通区域
http://blog.csdn.net/shaoxiaohu1/article/details/40272875 使用OpenCV查找二值图中最大连通区域 标签: OpenCVfindCoutour ...
- S0.4 二值图与阈值化
目录 二值图的定义 二值图的应用 阈值化 二值化/阈值化方法 1,无脑简单判断 opencv3函数threshold()实现 2,Otsu算法(大律法或最大类间方差法) OpenCV3 纯代码实现大津 ...
- C语言实现将彩色BMP位图转化为二值图
CTF做了图片的隐写题,还没有形成系统的认识,先来总结一下BMP图的组成,并通过将彩色图转为二值图的例子加深下理解. 只写了位图二进制文件的格式和代码实现,至于诸如RGB色彩和调色板是什么的一些概念就 ...
- coco数据集标注图转为二值图python(附代码)
coco数据集大概有8w张以上的图片,而且每幅图都有精确的边缘mask标注. 后面后分享一个labelme标注的json或xml格式转二值图的源码(以备以后使用) 而我现在在研究显著性目标检测,需要的 ...
- 超越OpenCV速度的MorphologyEx函数实现(特别是对于二值图,速度是CV的4倍左右)。
最近研究了一下opencv的 MorphologyEx这个函数的替代功能, 他主要的特点是支持任意形状的腐蚀膨胀,对于灰度图,速度基本和CV的一致,但是 CV没有针对二值图做特殊处理,因此,这个函数对 ...
- 【沥血整理】灰度(二值)图像重构算法及其应用(morphological reconstruction)。
不记得是怎么接触并最终研究这个课题的了,认识我的人都知道我是没有固定的研究对象的,一切看运气和当时的兴趣.本来研究完了就放在那里了,一直比较懒的去做总结,但是想一想似乎在网络上就没有看到关于这个方面的 ...
随机推荐
- WebMethod属性详解
WebMethod有6个属性:.Description.EnableSession.MessageName.TransactionOption.CacheDuration.BufferResponse ...
- oracle 变量声明 初始化 赋值
DECLARE sname VARCHAR2(20); BEGIN sname:='xxx'; sname:=sname||' and tom'; dbms_output.put_line(sname ...
- TestNG学习-002-annotaton 注解概述及其执行顺序
此文主要讲述用 TestNG 基础的 annotation (注解)知识,及其执行的顺序,并通过一个 TestNG 简单的实例演示 annotation 的执行顺序. 希望能对初学 TestNG 测试 ...
- JSON.stringify实例应用—将对象转换成JSON类型进行AJAX异步传值
在上一篇中,对JSON.stringify()方法有了初步的认识,并且做了一些简单的例子.本篇将进一步将JSON.stringify用在复杂些的实例中,例如如下需求: 在进jQuery AJAX异步传 ...
- MFC的简单加法器(二)
创建对话框主要分两大步,第一,创建对话框资源,主要包括创建新的对话框模板.设置对话框属性和为对话框添加各种控件:第二,生成对话框类,主要包括新建对话框类.添加控件变量和控件的消息处理函数等.鸡啄米在本 ...
- enableEventValidation是干什么的?
回发或回调参数无效.在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEve ...
- POJ1326问题描述
Description Mileage program of ACM (Airline of Charming Merlion) is really nice for the travelers fl ...
- OProfile 性能分析工具
OProfile 性能分析工具 官方网站:http://oprofile.sourceforge.net/news/ oprofile.ko模块本文主要介绍Oprofile工具,适用系统的CPU性能分 ...
- Linux 中的零拷贝技术,第 2 部分
技术实现 本系列由两篇文章组成,介绍了当前用于 Linux 操作系统上的几种零拷贝技术,简单描述了各种零拷贝技术的实现,以及它们的特点和适用场景.第一部分主要介绍了一些零拷贝技术的相关背景知识,简要概 ...
- JAVA中通过代码操作PC内容进行功能的实现
1.添加计划任务,用户项目中需要添加定时提醒功能: 计划任务只需要写一个继承java.util.TimerTask的类,覆盖其中的run方法即可,例如: import java.util.*; p ...