成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

詳解利用python識別圖片中的條碼(pyzbar)及條碼圖片矯正和增強

瀏覽:2日期:2022-07-05 11:13:38

前言

這周和大家分享如何用python識別圖像里的條碼。用到的庫可以是zbar。希望西瓜6辛苦碼的代碼不要被盜了。(zxing的話,我一直沒有裝好,等裝好之后再寫一篇)

具體步驟

前期準備

用opencv去讀取圖片,用pip進行安裝。

pip install opencv-python

所用到的圖片就是這個

詳解利用python識別圖片中的條碼(pyzbar)及條碼圖片矯正和增強

使用pyzbar

windows的安裝方法是

pip install pyzbar

而mac的話,最好用brew來安裝。(有可能直接就好,也有可能很麻煩)裝好之后就是讀取圖片,識別條碼。代碼如下

import cv2import pyzbar.pyzbar as pyzbarimage=cv2.imread('/Users/phoenix/Downloads/barcode.png')gray = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)texts = pyzbar.decode(gray)for text in texts: tt = text.data.decode('utf-8')print(tt)

結果如圖:

詳解利用python識別圖片中的條碼(pyzbar)及條碼圖片矯正和增強

特殊情況處理(條碼圖片矯正和增強)

只以pyzbar舉例

條碼是顛倒的是否會影響識別?

不影響,單純顛倒180度和90度是不會影響識別的。我們把上一個圖的顛倒180度,用顛倒后的圖試一下

詳解利用python識別圖片中的條碼(pyzbar)及條碼圖片矯正和增強

import cv2import pyzbar.pyzbar as pyzbarimport numpy as npimage=cv2.imread('/Users/phoenix/Downloads/barcode_180.png')gray = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)texts = pyzbar.decode(gray)print(texts)if texts==[]: print('未識別成功')else: for text in texts: tt = text.data.decode('utf-8') print('識別成功') print(tt)

結果如圖

詳解利用python識別圖片中的條碼(pyzbar)及條碼圖片矯正和增強

90度的話也是同樣可以成功的。但是其它角度就會GG。

條碼是傾斜的是否會影響識別?

會的,但這種還比較好處理。如圖

詳解利用python識別圖片中的條碼(pyzbar)及條碼圖片矯正和增強

這張圖用上面的代碼就會

詳解利用python識別圖片中的條碼(pyzbar)及條碼圖片矯正和增強

解決的思路是把這個圖片旋轉回來,至于如何判斷轉多少度,可以通過opencv來處理。通過膨脹和腐蝕將其變為如圖。

詳解利用python識別圖片中的條碼(pyzbar)及條碼圖片矯正和增強

接著再用cv2.minAreaRect函數,這個函數會返回如下,

詳解利用python識別圖片中的條碼(pyzbar)及條碼圖片矯正和增強

里面的第三個-45就是我們需要的角度。

綜合起來的實現代碼,我就放在下面了。(我自己寫的,如果有幫到你,快點關注和贊)

import cv2import pyzbar.pyzbar as pyzbarimport numpy as npdef barcode(gray): texts = pyzbar.decode(gray) if texts == []: angle = barcode_angle(gray) if angle < -45: angle = -90 - angle texts = bar(gray, angle) if texts == []: gray = np.uint8(np.clip((1.1 * gray + 10), 0, 255)) angle = barcode_angle(gray) #西瓜6寫的,轉載需聲明 if angle < -45: angle = -90 - angle texts = bar(gray, angle) return textsdef bar(image, angle): gray = image #西瓜6寫的,轉載需聲明 bar = rotate_bound(gray, 0 - angle) roi = cv2.cvtColor(bar, cv2.COLOR_BGR2RGB) texts = pyzbar.decode(roi) return textsdef barcode_angle(image): gray = image #西瓜6寫的,轉載需聲明 ret, binary = cv2.threshold(gray, 220, 255, cv2.THRESH_BINARY_INV) kernel = np.ones((8, 8), np.uint8) dilation = cv2.dilate(binary, kernel, iterations=1) erosion = cv2.erode(dilation, kernel, iterations=1) erosion = cv2.erode(erosion, kernel, iterations=1) erosion = cv2.erode(erosion, kernel, iterations=1) contours, hierarchy = cv2.findContours( erosion, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE) if len(contours) == 0: rect = [0, 0, 0] else: rect = cv2.minAreaRect(contours[0]) return rect[2]def rotate_bound(image, angle): (h, w) = image.shape[:2] (cX, cY) = (w // 2, h // 2) M = cv2.getRotationMatrix2D((cX, cY), -angle, 1.0) cos = np.abs(M[0, 0]) sin = np.abs(M[0, 1]) #西瓜6寫的,轉載需聲明 nW = int((h * sin) + (w * cos)) nH = int((h * cos) + (w * sin)) M[0, 2] += (nW / 2) - cX M[1, 2] += (nH / 2) - cY return cv2.warpAffine(image, M, (nW, nH))image=cv2.imread('/Users/phoenix/Downloads/barcode_455.png')gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)texts = barcode(gray)print(texts)if texts==[]: print('未識別成功')else: for text in texts: tt = text.data.decode('utf-8') print('識別成功') print(tt)

條碼是模糊的是否會影響識別?

會的,處理方法就是傳統的調對比度,銳化。。。。不過這個只能解決部分部分,至于有的條碼,微信可以掃,支付寶可以掃,但是我們識別不了,這個也不能怪庫不好,這部分該放棄就放棄吧。

結束語

如果你想用python來解決圖像里的條碼識別問題,這篇文章肯定是可以幫到你的。到此這篇關于詳解利用python識別圖片中的條碼(pyzbar)及條碼圖片矯正和增強的文章就介紹到這了,更多相關python識別圖片條碼內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
中文字幕欧美国产| 亚洲一区二区在线播放相泽| 日韩美女啊v在线免费观看| 成人激情电影免费在线观看| 欧美日韩精品一区二区| 日本中文字幕一区二区有限公司| 99爱精品视频| 亚洲欧美怡红院| 午夜欧美理论片| 久久综合av免费| 成人午夜精品在线| 69久久99精品久久久久婷婷| 久久精品国产**网站演员| 91福利资源站| 蜜臀a∨国产成人精品| 色视频成人在线观看免| 亚洲电影一级片| 性欧美videos另类喷潮| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲精品激情| 亚洲精品欧美在线| 亚洲韩日在线| 1区2区3区欧美| 亚洲午夜91| 成人免费小视频| 一本色道精品久久一区二区三区| 国产精品夫妻自拍| 亚洲国产精品一区二区第一页 | 日本韩国欧美一区二区三区| 三级一区在线视频先锋| 在线亚洲人成电影网站色www| 日本中文在线一区| 欧美日韩一区 二区 三区 久久精品| 久久国产精品露脸对白| 欧美日本一区二区在线观看| 国模少妇一区二区三区| 精品国产91亚洲一区二区三区婷婷| 成人美女视频在线观看| 久久麻豆一区二区| 国内视频一区| 亚洲一级电影视频| 久久国产精品久久久久久电车| 日本系列欧美系列| 日韩一区二区中文字幕| eeuss鲁一区二区三区| 久久精品视频网| 亚洲国产精品第一区二区三区| 亚洲国产综合人成综合网站| 久久婷婷一区| 韩国一区二区三区| 久久先锋影音av鲁色资源网| 国产精品激情| 亚洲一二三专区| 欧美影院午夜播放| 高清av一区二区| 国产午夜精品久久久久久免费视 | 视频一区二区三区中文字幕| 另类的小说在线视频另类成人小视频在线 | 久久你懂得1024| 亚洲国产高清aⅴ视频| 国产精品女主播av| 欧美另类z0zxhd电影| 极品尤物av久久免费看| 777精品伊人久久久久大香线蕉| 免费欧美日韩国产三级电影| 欧美曰成人黄网| 欧美久久视频| 欧美凹凸一区二区三区视频| 91丝袜美腿高跟国产极品老师| 国产在线精品一区二区三区不卡| 成人做爰69片免费看网站| 国产午夜久久久久| 国产日韩精品视频一区二区三区| 免费成人在线观看| 26uuu国产日韩综合| 一区二区三区av| 精品中文字幕一区二区小辣椒| 久久精品在这里| 午夜亚洲福利在线老司机| 国产**成人网毛片九色 | 自拍偷拍亚洲激情| 在线观看亚洲a| 色综合天天综合网天天狠天天 | 欧美色手机在线观看| 91色在线porny| 视频一区国产视频| 久久久精品中文字幕麻豆发布| 久久精品道一区二区三区| 成人美女视频在线观看| 亚洲制服丝袜一区| 日韩久久精品一区| 香蕉久久国产| 欧美.www| 久久99国内精品| 国产精品久久久久久久久快鸭| 欧美做爰猛烈大尺度电影无法无天| 99国产精品久久久久久久久久| 亚洲va国产va欧美va观看| 精品va天堂亚洲国产| 性色av一区二区怡红| 91欧美一区二区| 日韩av一区二区三区四区| 国产欧美1区2区3区| 在线观看亚洲a| 伊人久久成人| 国产麻豆视频一区二区| 亚洲精品国产精品乱码不99 | 国产精品日韩精品欧美精品| 成人网男人的天堂| 午夜精品aaa| 国产欧美日韩精品a在线观看| 色狠狠色狠狠综合| 欧美日一区二区在线观看 | 亚洲少妇一区| 成人精品一区二区三区四区| 午夜国产不卡在线观看视频| 国产三级一区二区三区| 欧美日韩一区二区欧美激情| 一区二区精品| 91免费看片在线观看| 久久国产精品第一页| 亚洲一区免费在线观看| 国产午夜亚洲精品理论片色戒| 欧美日韩激情一区| 亚洲一区二区三区午夜| 欧美日韩a区| 国产v日产∨综合v精品视频| 亚洲国产成人va在线观看天堂| 国产亚洲一区二区三区四区| 欧美图区在线视频| 亚洲精选一区| 99久久婷婷国产综合精品电影| 九九热在线视频观看这里只有精品| 亚洲一二三区不卡| 国产欧美日韩不卡免费| 日韩欧美国产成人一区二区| 在线观看三级视频欧美| 亚洲综合国产激情另类一区| 国产一区二区中文字幕免费看| 国产麻豆视频一区| 天天色天天爱天天射综合| 亚洲三级免费电影| 国产欧美一区二区精品婷婷| 日韩一区二区精品在线观看| 久久精品主播| 99精品国产高清一区二区 | 欧美日韩在线播放一区| 久久精彩视频| 亚洲一区二区三区精品视频| 亚洲午夜精品福利| 欧美在线日韩精品| 97久久人人超碰| 成人在线综合网| 国产一区美女在线| 久久综合综合久久综合| 青青草国产成人99久久| 水蜜桃久久夜色精品一区的特点| 一区二区三区四区不卡在线 | 在线成人午夜影院| 精品视频在线免费| 欧美性做爰猛烈叫床潮| 色成年激情久久综合| 美玉足脚交一区二区三区图片| 国产区二精品视| 国产日韩欧美精品| 国产精品日本欧美一区二区三区| 国产精品免费一区二区三区观看| 国产区二精品视| 午夜在线精品偷拍| 亚洲欧美日韩精品在线| 国产欧美不卡| 国产精品亚洲综合色区韩国| 一级日韩一区在线观看| 亚洲精品美女91| 夜夜嗨网站十八久久 | 日韩女优av电影| 精品免费视频.| 精品国产露脸精彩对白| 精品免费一区二区三区| 久久综合九色欧美综合狠狠| 久久久久9999亚洲精品| 欧美国产一区二区| 国产精品久久久久久久裸模| 国产精品久久夜| 国产精品国产三级国产普通话三级| 综合久久国产九一剧情麻豆| 亚洲免费观看高清完整版在线观看熊| 亚洲欧美色综合| 亚洲国产日韩在线一区模特| 丝袜美腿亚洲综合| 免费国产亚洲视频| 精品一区二区三区在线播放| 国产美女久久久久| av在线不卡免费看| 欧美福利视频| 激情视频一区二区| 国产日韩亚洲| 久久亚洲高清| 欧美日韩免费电影| 欧美肥妇bbw|