网友真实露脸自拍10p,成人国产精品秘?久久久按摩,国产精品久久久久久无码不卡,成人免费区一区二区三区

小程序模板網

微信是如何識別小程序碼的?

發布時間:2018-04-20 10:30 所屬欄目:小程序開發教程

【小程序碼-設計篇】菊花綻放 一文中介紹了小程序碼的設計過程,本文繼續分享我們在小程序碼識別上面的一些心得,權當拋磚引玉,歡迎有共同興趣的同事一起討論。

識別之前,我們需要對照片做什么處理

打開掃一掃,掃碼引擎通常采集到的圖片是這樣子的。

引擎其實并不關心這朵菊花是什么顏色,因此,我們把圖片簡化,處理成灰度圖。

二值化可以讓引擎做的事情更簡單,因此再將灰度圖處理成位圖。

如何在黑白圖中快速找到菊花的位置

細心的朋友肯定注意到,每一朵菊花都有兩個共同點:

  • 3 個圓形的“牛眼”(定位點)

  • 右下角的“小程序 LOGO”

以上是小程序碼的定位信息,準確的定位是識別的第一步。

如何快速找出所有可能的定位點

在設計這個菊花碼時,我們是按照 0.8 : 1.2 : 1 : 1.2 : 0.8 繪制定位點的。

為什么不采用 1:1:1:1:1 的比例?因為前者比例比較貼近黃金比例,更符合人類審美需求。(下圖右為 1:1:1:1:1)

基于這個特性,使用水平,垂直,45 度角等三個方向的掃描線掃描全圖。如果三個方向的黑白像素都接近這個比例,顯然它極可能是一個定位點。

怎么定位“小程序 LOGO”

最簡單的方法,根據 3 個定位點的位置,預估小程序 LOGO 的中心位置(平行四邊形)

在很多扭曲的情況下,上述方法仍有較大偏差。因此我們提出了一種改進方法:基于 LOGO 為圓形的特性,將預估的中心點修正到圓心位置

具體校正方法如下:

拍攝出來的碼這么“歪”,能否進行“擺正”

由于上文中,我們已經找到了碼在圖像中的位置,但由于這個碼可能已經被旋轉,扭曲,所以,我們需要再做一次矩陣變換(透視變換),將其變換到直角坐標系。變換后的碼,已經比較易于被機器解讀了。

怎么讀碼

二維碼怎么讀碼

上述流程和傳統二維碼識別的核心思想并無二致,如果你堅持看到這里,說明你已經知道如何識別二維碼了。

經過透視變換,二維碼其實已經變成了單位矩陣(如上圖,你可以理解一個小塊為一個像素點,這里為了方便閱讀,放大了),那么,我們順著二維碼的編碼路徑,就能完整地讀出編碼信息了。

小程序碼怎么讀碼

其實,按照二維碼的套路,我們可以把透視變換后的圖,進行編碼區域劃分。值得注意的是,這里一個彩色小塊并非一個像素點,而是一片區域。一個編碼塊是 0 還是 1,取決于該區域上的黑色像素(面積)的比例,我們稱之為“投票法”。

是否有其他讀碼方案

但在實際應用中,我們發現該方法對于扭曲的場景,識別效率很低,魯棒性不佳。經過各種嘗試和思考,我們借鑒了一維碼的識別思路 ——“采樣法”。

舉個例子,上圖中,我們用紅色掃描線采樣一維碼的信息,對于采樣的一行像素,我們根據比例讀出具體的編碼。

類比該方案,我們利用小程序碼為“放射線”編碼的特性,采樣每一條放射線上的一個像素序列,根據黑白比例讀出每一條線的編碼信息。

目前掃碼引擎的性能如何,能應對什么場景

在測試階段,我們內部自行拍攝采集了各種場景下的大量測試樣本,做了如下評測

包括如下場景



易優小程序(企業版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://www.xiuhaier.com/wxmini/doc/course/23743.html 復制鏈接 如需定制請聯系易優客服咨詢:800182392 點擊咨詢
QQ在線咨詢
AI智能客服 ×