日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

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

瀏覽:26日期: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 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
奇米777国产一区国产二区| 欧美综合二区| 国产精品日韩精品在线播放| 伊人久久大香线蕉av超碰演员| 亚洲一级二级| 亚洲一级在线| 亚洲毛片一区| 国产精品亚洲人成在99www| 麻豆国产欧美一区二区三区| 动漫av一区| 99视频精品全部免费在线视频| 999精品色在线播放| 狠狠干成人综合网| 最近国产精品视频| 国产极品嫩模在线观看91精品| 国产一区二区三区日韩精品| 国产精品久久久久蜜臀| 在线精品视频在线观看高清| av不卡在线看| 国产日韩高清一区二区三区在线 | 亚洲人成亚洲精品| 日韩欧美中文字幕电影| 国产精品xxxav免费视频| 国产一区精品福利| 欧美日韩国产高清| 国产精品一区亚洲| 欧美成人亚洲| 亚洲精品无播放器在线播放| 国产精品99久久免费| 91看片一区| 日韩一区二区三区高清在线观看| 高清av一区| 免费成人在线影院| 麻豆传媒一区二区三区| 国产一在线精品一区在线观看| 日韩av午夜在线观看| 在线手机中文字幕| 亚州av一区| 日本在线高清| 少妇精品在线| 电影亚洲精品噜噜在线观看| 日韩一区二区三区四区五区| 欧美激情网址| 国产模特精品视频久久久久| 麻豆精品视频在线观看| 亚洲精品va| 精品一区二区三区四区五区| 亚洲自啪免费| 毛片在线网站| 欧美一区91| 久久国产精品久久w女人spa| 福利一区二区三区视频在线观看| 日韩一区二区三区精品| 国产在线日韩| 精品日韩一区| 日韩va亚洲va欧美va久久| 99精品网站| 日韩精品亚洲aⅴ在线影院| 久久精品青草| 精品久久久久中文字幕小说| 蜜桃视频免费观看一区| 日韩av首页| 久久中文字幕导航| 日韩一区二区三区高清在线观看| 亚洲精品网址| 88xx成人免费观看视频库| 国产香蕉精品| 亚洲人妖在线| 国产精品嫩草99av在线| 日韩电影免费网站| 精品三级av| 国产精品hd| 巨乳诱惑日韩免费av| 成人羞羞视频在线看网址| 欧美交a欧美精品喷水| 日韩毛片网站| 一区二区精彩视频| 夜夜嗨网站十八久久| 久久精品影视| 久久久久99| 日韩在线高清| 亚洲风情在线资源| 亚洲最新无码中文字幕久久| 精品亚洲精品| 国产96在线亚洲| 欧美日韩调教| 国产精品综合| 91亚洲精品在看在线观看高清| 妖精视频成人观看www| 亚洲午夜精品久久久久久app| 欧美日韩尤物久久| 三上悠亚国产精品一区二区三区| 精品视频在线观看网站| 国产精品超碰| 加勒比视频一区| 麻豆91在线播放| 你懂的网址国产 欧美| 人人爱人人干婷婷丁香亚洲| 欧美亚洲免费| 美女毛片一区二区三区四区最新中文字幕亚洲 | 在线观看精品| 91综合视频| 桃色一区二区| 亚洲国内精品| 模特精品在线| 亚洲丝袜美腿一区| 亚洲免费毛片| 欧美色综合网| 精品国产一区二| 亚洲人成在线网站| 亚洲免费播放| 日韩美女国产精品| 久久wwww| 日韩在线欧美| 亚洲一区二区动漫| 蜜桃免费网站一区二区三区| 日韩高清欧美激情| 久久精品资源| 激情婷婷综合| 日韩三级视频| 久久精品国产在热久久| av综合电影网站| 国产视频亚洲| 久久国产视频网| 国产资源在线观看入口av| 欧美在线亚洲| 国产亚洲精品美女久久 | 日韩视频久久| 亚洲一区二区三区四区电影| 91成人福利| 日韩毛片视频| 日韩精品一二三四| 国产亚洲一区二区三区啪| 成人国产精品一区二区免费麻豆| 99久久激情| 亚久久调教视频| 久久久久黄色| 亚洲二区三区不卡| 国产日韩欧美三区| 日本精品在线中文字幕| 日韩影院在线观看| 美女久久久精品| 99视频精品视频高清免费| 综合欧美亚洲| 吉吉日韩欧美| 亚洲精品国模| 亚洲天堂av影院| 婷婷成人av| 成人精品亚洲| 国产精品主播在线观看| 欧美日韩中文一区二区| 欧美亚洲tv| 日韩午夜一区| 精品亚洲二区| 蜜桃视频免费观看一区| 中文字幕在线看片| 午夜a一级毛片亚洲欧洲| 成人在线视频区| 亚洲欧洲国产精品一区| 午夜影院一区| 国产精品调教| 亚洲最大av| 啪啪国产精品| 国产精品v日韩精品v欧美精品网站| 国内亚洲精品| 美腿丝袜亚洲一区| 玖玖玖国产精品| 999久久久精品国产| 国产极品模特精品一二| 亚洲丝袜美腿一区| 五月天久久久| 五月激情久久| 国产精品白丝一区二区三区| 日韩专区在线视频| 久久影院一区| 色偷偷偷在线视频播放| 国产乱码精品一区二区亚洲| 亚洲欧美日韩精品一区二区| 欧美日韩国产观看视频| 国产精品伦一区二区| 最新国产精品| 久久亚洲欧美| 午夜久久久久| 欧美亚洲精品在线| 成人在线黄色| 麻豆久久久久久| 日韩av中文字幕一区二区| 国产国产精品| 亚洲一区二区三区高清| 不卡在线一区二区| 久久精品亚洲人成影院| 国产精品原创| 精品国产精品久久一区免费式| 91精品国产经典在线观看| 日韩中文字幕一区二区三区| 视频一区中文| 日韩一区二区久久| 亚洲精品91| 亚洲作爱视频| 国产亚洲精品v|