ZXing掃描,是拿到攝像頭的每一幀,然后對其根據如下公式做灰度化
f(i,j)=0.30R(i,j)+0.59G(i,j)+0.11B(i,j))
之后做全局直方圖二值化的方法,最后按照ISO/IEC 18004 規范進行解析。
上面有提過二維碼是通過全局直方圖二值化后,按照ISO標準解碼,實際上是,按照1:1:3:1:1去尋找那三個尋像圖形,就是標志性的大方塊。然后圈出二維碼大小再去解碼的。也就是說,再沒設定邊界的情況下全屏都可以。
而條形碼完全不同,他是在Detect Center那個點,畫一個無限延伸的米字型,然后去判斷每一條在線能否解析出條形碼所需要的0101010序列。而iOS默認的Center是 Layer 的 Center