導航:首頁 > 編程語言 > pythonopencv4數字識別

pythonopencv4數字識別

發布時間:2022-04-26 11:57:15

1. python opencv查找某圖片是否包含字母a

能查找圖片中是否包含字母A,就能查找圖片中是否包含B。
能查找圖片中是否包含A、B,就能查找圖片中都包含哪些字母。
能查找圖片中都包含哪些字母,就能做一個驗證碼識別或者車牌識別的程序出來。

所以,你可以去查一下驗證碼識別或者車牌識別的源碼。問題就搞定了。
就說到這了。

2. 如何在Python中使用OpenCV的

0.下載安裝Opencv,當前版本為249.


1.下載Python,當前OPencv版本為249,不過其支持的最新版本的Python為2.7,所以可以下載276版本。


2.下載numpy,開始我使用了1.6,沒有通過,錯誤如圖。下載了最新的1.8.1版本。

3.將Opencv安裝目錄下opencvuildpython2.7x86中的cv2.pyd復制到python安裝目錄Libsite-packages下。


4.找到opencv源文件內的draw.py運行。

~如果你認可我的回答,請及時點擊【採納為滿意回答】按鈕

~~手機提問的朋友在客戶端右上角評價點【滿意】即可。

~你的採納是我前進的動力

~~O(∩_∩)O,記得好評和採納,互相幫助,謝謝。

3. 如何利用Python做簡單的驗證碼識別

1摘要

驗證碼是目前互聯網上非常常見也是非常重要的一個事物,充當著很多系統的防火牆功能,但是隨時OCR技術的發展,驗證碼暴露出來的安全問題也越來越嚴峻。本文介紹了一套字元驗證碼識別的完整流程,對於驗證碼安全和OCR識別技術都有一定的借鑒意義。

然後經過了一年的時間,筆者又研究和get到了一種更強大的基於CNN卷積神經網路的直接端到端的驗證識別技術(文章不是我的,然後我把源碼整理了下,介紹和源碼在這裡面):

基於python語言的tensorflow的『端到端』的字元型驗證碼識別源碼整理(github源碼分享)

2關鍵詞

關鍵詞:安全,字元圖片,驗證碼識別,OCR,Python,SVM,PIL

3免責聲明

本文研究所用素材來自於某舊Web框架的網站完全對外公開的公共圖片資源。

本文只做了該網站對外公開的公共圖片資源進行了爬取,並未越權做任何多餘操作。

本文在書寫相關報告的時候已經隱去漏洞網站的身份信息。

本文作者已經通知網站相關人員此系統漏洞,並積極向新系統轉移。

本報告的主要目的也僅是用於OCR交流學習和引起大家對驗證安全的警覺。

4引言

關於驗證碼的非技術部分的介紹,可以參考以前寫的一篇科普類的文章:

互聯網安全防火牆(1)--網路驗證碼的科普

裡面對驗證碼的種類,使用場景,作用,主要的識別技術等等進行了講解,然而並沒有涉及到任何技術內容。本章內容則作為它的技術補充來給出相應的識別的解決方案,讓讀者對驗證碼的功能及安全性問題有更深刻的認識。

5基本工具

要達到本文的目的,只需要簡單的編程知識即可,因為現在的機器學習領域的蓬勃發展,已經有很多封裝好的開源解決方案來進行機器學習。普通程序員已經不需要了解復雜的數學原理,即可以實現對這些工具的應用了。

主要開發環境:

4. python怎麼識別圖片文字

可以調用opencv來進行識別

5. 如何使用python和opencv實現人眼識別

程序實現思路如下:

利用級聯分類器檢測出人臉區域,再在人臉區域中檢測出眼睛的區域,檢測出眼睛的區域之後,用跟蹤演算法咔嚓眼睛降低運算量,避免每一幀都去檢測眼睛。

代碼如下:

代碼中用到的級聯分類器初始化XML下載:

[cpp]view plain

6. 如何利用Python 做驗證碼識別

用python加「驗證碼」為關鍵詞在里搜一下,可以找到很多關於驗證碼識別的文章。我大體看了一下,主要方法有幾類:一類是通過對圖片進行處理,然後利用字型檔特徵匹配的方法,一類是圖片處理後建立字元對應字典,還有一類是直接利用ocr模塊進行識別。不管是用什麼方法,都需要首先對圖片進行處理,於是試著對下面的驗證碼進行分析。
一、圖片處理
這個驗證碼中主要的影響因素是中間的曲線,首先考慮去掉圖片中的曲線。考慮了兩種演算法:
第一種是首先取到曲線頭的位置,即x=0時,黑點的位置。然後向後移動x的取值,觀察每個x下黑點的位置,判斷前後兩個相鄰黑點之間的距離,如果距離在一定范圍內,可以基本判斷該點是曲線上的點,最後將曲線上的點全部繪成白色。試了一下這種方法,結果得到的圖片效果很一般,曲線不能完全去除,而且容量將字元的線條去除。
第二種考慮用單位面積內點的密度來進行計算。於是首先計算單位面積內點的個數,將單位面積內點個數少於某一指定數的面積去除,剩餘的部分基本上就是驗證碼字元的部分。本例中,為了便於操作,取了5*5做為單位范圍,並調整單位面積內點的標准密度為11。處理後的效果:
二、字元驗證
這里我使用的方法是利用pytesser進行ocr識別,但由於這類驗證碼字元的不規則性,使得驗證結果的准確性並不是很高。具體哪位大牛,有什麼好的辦法,希望能給指點一下。
三、准備工作與代碼實例
1、PIL、pytesser、tesseract
(1)安裝PIL:下載地址:http:// www. pythonware. com/procts/pil/(2)pytesser:下載地址:http :/ /code. google. com/p/pytesser/,下載解壓後直接放在代碼相同的文件夾下,即可使用。
(3)Tesseract OCR engine下載:http: / / code.google. com/p/tesseract-ocr/,下載後解壓,找到tessdata文件夾,用其替換掉pytesser解壓後的tessdata文件夾即可。
2、具體代碼
復制代碼
#encoding=utf-8
###利用點的密度計算
import Image,ImageEnhance,ImageFilter,ImageDrawimport sys
from pytesser import *
#計算范圍內點的個數
def numpoint(im):
w,h = im.size
data = list( im.getdata() )
mumpoint=0
for x in range(w):
for y in range(h):
if data[ y*w + x ] !=255:#255是白色
mumpoint+=1
return mumpoint
#計算5*5范圍內點的密度
def pointmi(im):
w,h = im.size
p=[]
for y in range(0,h,5):
for x in range(0,w,5):
box = (x,y, x+5,y+5)
im1=im.crop(box)
a=numpoint(im1)
if a<11:##如果5*5范圍內小於11個點,那麼將該部分全部換為白色。
for i in range(x,x+5):
for j in range(y,y+5):
im.putpixel((i,j), 255)
im.save(r'img.jpg')
def ocrend():##識別
image_name = "img.jpg"
im = Image.open(image_name)
im = im.filter(ImageFilter.MedianFilter())enhancer = ImageEnhance.Contrast(im)
im = enhancer.enhance(2)
im = im.convert('1')
im.save("1.tif")
print image_file_to_string('1.tif')
if __name__=='__main__':
image_name = "1.png"
im = Image.open(image_name)
im = im.filter(ImageFilter.DETAIL)
im = im.filter(ImageFilter.MedianFilter())enhancer = ImageEnhance.Contrast(im)
im = enhancer.enhance(2)
im = im.convert('1')
##a=remove_point(im)
pointmi(im)
ocrend()

7. opencv 圖像識別 c python哪個快

兩者主要的區別在於介面和效率。
實際上Python和C++的OpenCV介面幾乎一樣,不同的是用C++的話,矩陣用的是cv::Mat,Python裡面用的是numpy.array,用法和介面都不一樣,但文檔豐富,使用也非常方便,原理也相似。
效率方面,Python的介面實際上只是一層Binding,最終還是調用libopencv_*.so裡面的函數,所以在OpenCV這一層效率與C++是完全一致的。唯一不同的就是它的numpy.array和cv::Mat。Numpy底層也是使用C Extension的方法寫,但相比C++版的OpenCV介面,Python的介面需要把Numpy的數據轉化成OpenCV的C介面可接受的輸入。
實測Python寫的程序會慢,但具體慢多少並沒有測試數據可支撐。
用Python寫實際上也不會比C++開發快多少,因為介面都是一樣的,我建議不如直接用C++寫。
簡單說兩句,選python還是C++,考慮下面幾個問題
1. 性能壓力在哪裡?python的GIL使得多線程不能多核並行,必須用多進程,而且天生python要比c++慢一些。因此如果是cpu密集型,建議用C++,如果是IO密集型,python沒有那麼大的劣勢。
2. 開發成本高還是運行成本高,一個開發人員一個月多少錢,一個伺服器一個月多少錢,通常來說前者越來越貴而後者反之,權衡下利弊,C++開發要比python慢,在性能都達標的情況下,如果節省的伺服器成本能抵過開發成本,用C++,反之用python。
1,差不多,基本調用參數都一樣,格式符合各自語言規范。
2,在我開發的程序中python比cpp明顯有差距,但是換到工作用的電腦上這個差距就看不錯來了,so,硬體配置好一些,用python做實時也是沒有問題的。外,感覺同樣的函數python就是比cpp慢一些,雖然上面說到python底層用的也是lib。
3,基本一樣。(python可能功能稍微差一點2.4.8版本有個函數沒在python中找到,但是也就那一個)
4,python比較簡單,開發可能快一點(主要是軟體的其他部分可能比較容易開發)。

8. 如何從python中opencv的數組讀取原始PNG

比如元組s轉為列表。。? 轉換就是list()和tuple()。哪來的數組python中只有列表和元組

9. python怎麼識別條形碼

一般思路是用Opencv解析條碼圖片,用NumPy做數值計算,中國區的條碼是是EAN13條形碼,找找這方面的資料吧,我也不是很清楚條碼的編碼解碼規則,也沒興趣去深入了解。理解了規則,再動手去做編碼解碼的活,就很簡單了,所以你要做的事就是:

  1. 用cv2載入圖像,並轉換成單通道圖像,並解析圖像。

  2. 跟據條碼規則和圖像解析結果,進行解碼。

  3. 輸出結果。

閱讀全文

與pythonopencv4數字識別相關的資料

熱點內容
銀河麒麟字體庫存在哪個文件夾 瀏覽:956
魔獸加丁伺服器的航空叫什麼 瀏覽:152
花冠改裝案例哪個app多 瀏覽:515
成績單app哪個好用 瀏覽:140
北美程序員vs國內程序員 瀏覽:181
php解析xml文檔 瀏覽:121
石墨文檔APP怎麼橫屏 瀏覽:185
牆主鋼筋加密和非加密怎麼看 瀏覽:144
金山區文件夾封套定製 瀏覽:708
soho程序員 瀏覽:672
java位元組截取 瀏覽:525
php提交作業 瀏覽:815
房產還沒解壓可以辦理贈予嗎 瀏覽:224
java毫秒轉分鍾 瀏覽:753
模式識別中文pdf 瀏覽:774
c語言平均數字編譯錯誤 瀏覽:171
單片機算交流 瀏覽:45
php自適應網站 瀏覽:467
2b2t伺服器怎麼獲得許可權 瀏覽:816
c語言javaphp 瀏覽:804