CIDetector無法識別相冊中的二維碼

? ? ? ?今天在做一個從本地相冊中識別二維碼的功能,在搜索后決定采用CIDetector這個原生的功能實現(xiàn)。具體代碼在此不表了,網(wǎng)上一搜一大堆。都是可用的。

? ? ? ?在這篇文章重要說的是:CIDetector無法識別iPhone相機拍攝的二維碼圖片的問題。

? ? ? 我的手機是iPhone6默認情況下使用相機拍攝的圖片尺寸為:2448x3264在選擇圖片后通過CIDetector來識別的時候返回結(jié)果總是0,這讓我感覺很奇怪。改變一下參數(shù),做一個人臉識別,結(jié)果正確。這說明我調(diào)用的沒有問題。又使用被我放棄很久的ZXingObjC來識別,還是失敗。這說明恐怕和現(xiàn)有代碼沒有關系了。繼續(xù)搜索,偶然間看到一位網(wǎng)友在v2ex上的回答

iluhcm? 260 天前

zxing 之所以不好用是需要做優(yōu)化的。

圖片大小不能完全按照原始的尺寸來,我測試過,把圖片縮小成 256 像素左右識別率比較高。目前不清楚是什么原理。

還有二維碼的圖像識別算法, GlobalHistogramBinarizer 和 HybridBinarizer 分別適用不同的場景,圖片識別的話要看圖片屬于什么類型的,黑白的肯定是前者識別更有效,帶有漸變的或者有陰影的則采用后一個算法。

總之二維碼識別有許多層級的優(yōu)化,目前正在研究中。

他提到,把圖片縮小到256像素識別率較高,這就是真正的解決辦法。

于是按照他的辦法,縮小后,CIDetector、ZXingObjC測試全部通過。

測試發(fā)現(xiàn)CIDetector比ZXingObjC慢5倍多,耗時超過200毫秒。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容