随笔分类 -  QR码

摘要:昨天要做一个最优二值化,原QR图如下:对其做最优二值化,即在其直方图两个灰度波峰之间的的波谷用来做二值化的阈值。也就是下图中所示的小红点。在连续变量中可以用求导的方式来获得波峰和波谷的位置,但是对于离散变量,要如何求这个小红点的位置捏?方法一:可以设计这样一个检测结构用这个结构对直方图上的灰度1~255进行检测,如果左侧的灰度值高于检测点的灰度值,且右侧的灰度值也高于检测点的灰度值。那么就说明检测点所处的位置就是某一个波谷了。但是,这样又出现了另一个问题,直方图波形中的毛刺会导致很多“虚波谷”的出现。所以,在使用上述结构检测之前,要先对直方图波形进行平滑处理。直方图的平滑处理可以考虑这两种方法 阅读全文
posted @ 2012-06-11 17:01 elar 阅读(2406) 评论(2) 推荐(0) 编辑
摘要:前面介绍了如何用频率滤波的方法进行直方图平滑,现在尝试用插值的方法做平滑。设计思路:(1)设定步长step(2)对于直方图上的某点x,按照如下公式计算它平滑后的值tempsmooth函数的代码如下:View Code private int[] smooth(int[] arr, int step) { int start = step - step/2; int end = 256 - step/2 ; double temp = 0; int[] res = new int[256]; ... 阅读全文
posted @ 2012-06-11 15:26 elar 阅读(6180) 评论(3) 推荐(0) 编辑
摘要:原直方图:进行一维离散余弦变换,公式如下:参考代码如下:View Code private int[] fourier() { int[] ft = new int[256]; int N = 256; double Cu = 1; for(int u = 0; u < N; u++){ if(u == 0){ Cu = 1.0/Math.Sqrt(2); } double sum... 阅读全文
posted @ 2012-06-11 10:16 elar 阅读(3144) 评论(1) 推荐(1) 编辑
摘要:未经过旋转调整的图片还是不能正确提取module矩阵。 因为只剩13天了,所以打算先做module矩阵解码的代码。等解码代码搞定后,再优化识别的代码。还要复习嵌入式有木有,要是能一分钟掰成两分钟花就好了。fighting!!! 阅读全文
posted @ 2012-04-17 22:12 elar 阅读(2769) 评论(0) 推荐(0) 编辑
摘要:现在能分割回形字符后,不知道该怎么识别它。明天的任务是搞定识别回形符。 阅读全文
posted @ 2012-04-17 00:25 elar 阅读(377) 评论(0) 推荐(0) 编辑
摘要:QR码的位置检测符由三个同心正方形叠加而成。分别为:7*7 modules的黑色正方形;5*5 modules的白色正方形 ; 3*3modules的黑色正方形。三个用于定位检测的“回”形符号应该优先被编码,好让QR 符号中尽量不出现与其相似的符号。这三个“回”形符号可以帮助快速的在视野中定位QR码以及确定其方向。 阅读全文
posted @ 2012-04-11 12:01 elar 阅读(1439) 评论(0) 推荐(0) 编辑
摘要:在QR Code的ISO标准中给出了QR Code的结构,如下图所示:观察该结构图可以发现:a)一个QR 符号由两部分构成:Function Patterns 和 Encoding Region。前者是与识别相关,后者是与信息相关。b)QR Code的function patterns以及Format 信息、version 信息都是呈对角线对称的。format信息和version信息都紧紧围绕在检测标识的周围,及“回”字的周围。以下将依次介绍各个部分的大致功能:1、Quiet Zone是QR Symbol四周的空白区域,宽度至少为4个module以上。2、Position Detection 阅读全文
posted @ 2012-04-11 11:34 elar 阅读(7786) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示