① 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比較簡單,開發可能快一點(主要是軟體的其他部分可能比較容易開發)。
② 識別圖片的python代碼
網址403許可權錯誤。
如果是個人網站,建議檢查;如果僅僅是為了測試,建議將圖片上傳到圖床上測試。
提問時建議隱藏API_ID和API_KEY,保護自己的信息。
③ Python如何圖像識別
提取待檢索電影的每一幀圖像的局部敏感哈希 (Locality Sensitive Hashing; LSH) 特徵, 並保存下來, 不妨稱為庫 (gallery). LSH 特徵可以用整型來表示, 一般是6...
2.來了一張查詢圖像 (query), 也計算它的 LSH 特徵. 然後與預先保存下來的庫中的每個 LSH 特徵都計算 Hamming 距離, 返回庫中與查詢圖像 LSH 特徵距離最小 (或距離小於指定閾值) ...
④ 如何python pil開發圖像識別
1. 簡介。
圖像處理是一門應用非常廣的技術,而擁有非常豐富第三方擴展庫的 Python 當然不會錯過這一門盛宴。PIL (Python Imaging Library)是 Python 中最常用的圖像處理庫,目前版本為 1.1.7,我們可以在這里下載學習和查找資料。
Image 類是 PIL 庫中一個非常重要的類,通過這個類來創建實例可以有直接載入圖像文件,讀取處理過的圖像和通過抓取的方法得到的圖像這三種方法。
2. 使用。
導入 Image 模塊。然後通過 Image 類中的 open 方法即可載入一個圖像文件。如果載入文件失敗,則會引起一個 IOError ;若無返回錯誤,則 open 函數返回一個 Image 對象。現在,我們可以通過一些對象屬性來檢查文件內容,即:
1 >>> import Image
2 >>> im = Image.open("j.jpg")
3 >>> print im.format, im.size, im.mode
4 JPEG (440, 330) RGB
這里有三個屬性,我們逐一了解。
format : 識別圖像的源格式,如果該文件不是從文件中讀取的,則被置為 None 值。
size : 返回的一個元組,有兩個元素,其值為象素意義上的寬和高。
mode : RGB(true color image),此外還有,L(luminance),CMTK(pre-press image)。
現在,我們可以使用一些在 Image 類中定義的方法來操作已讀取的圖像實例。比如,顯示最新載入的圖像:
1 >>>im.show()
2 >>>
輸出原圖:
3.5 更多關於圖像文件的讀取。
最基本的方式:im = Image.open("filename")
類文件讀取:fp = open("filename", "rb"); im = Image.open(fp)
字元串數據讀取:import StringIO; im = Image.open(StringIO.StringIO(buffer))
從歸檔文件讀取:import TarIO; fp = TarIo.TarIO("Image.tar", "Image/test/lena.ppm"); im = Image.open(fp)
基本的 PIL 目前就練習到這里。其他函數的功能可點擊這里進一步閱讀。
⑤ Python 圖像識別 如何找出圖像的中心點
用的 opencv 先灰度模糊,再二值化,找到圖形輪廓最後確定中心點·~
⑥ 這種圖片可以用Python自動識別嗎
Python圖片文本識別使用的工具是PIL和pytesser。因為他們使用到很多的python庫文件,為了避免一個個工具的安裝,建議使用pythonxy
pytesser是OCR開源項目的一個模塊,在Python中導入這個模塊即可將圖片中的文字轉換成文本。pytesser調用了tesseract。當在Python中調用pytesser模塊時,pytesser又用tesseract識別圖片中的文字。pytesser的使用步驟如下:
首先,安裝Python2.7版本,這個版本比較穩定,建議使用這個版本。
其次,安裝pythoncv。
然後,安裝PIL工具,pytesser的使用需要PIL庫的支持。
接著下載pytesser
最後,將pytesser解壓,這個是免安裝的,可以將解壓後的文件cut到Python安裝目錄的Lib\site-packages下直接使用,比如我的安裝目錄是:C:\Python27\Lib\site-packages,同時把這個目錄添加到環境變數之中。
完成以上步驟之後,就可以編寫圖片文本識別的Python腳本了。參考腳本如下:
from pytesser import *
import ImageEnhance
image = Image.open('D:\\workspace\\python\\5.png')
#使用ImageEnhance可以增強圖片的識別率
enhancer = ImageEnhance.Contrast(image)
image_enhancer = enhancer.enhance(4)
print image_to_string(image_enhancer)
tesseract是谷歌的一個對圖片進行識別的開源框架,免費使用,現在已經支持中文,而且識別率非常高,這里簡要來個helloworld級別的認識
下載之後進行安裝,不再演示。
在tesseract目錄下,有個tesseract.exe文件,主要調用這個執行文件,用cmd運行到這個目錄下,在這個目錄下同時放置一張需要識別的圖片,這里是123.jpg
然後運行:tesseract 123.jpg result
會把123.jpg自動識別並轉換為txt文件到result.txt
但是此時中文識別不好
然後找到tessdata目錄,把eng.traineddata替換為chi_sim.traineddata,並且把chi_sim.traineddata重命名為eng.traineddata
ok,現在中文識別基本達到90%以上了
⑦ python圖像識別需要哪些庫
主流Python圖像庫:
1.opencv
2.PIL(pillow)
3.matplotlib.image
4.scipy.misc
5.skimage
⑧ python能做圖像識別嗎
可以,你可以用它做其餘軟體能實現的任何功能。大家長用他來處理數據,做深度學習。
⑨ 用python寫識別圖片主要顏色的程序
#-*-coding:utf-8-*-
importcolorsys
defget_dominant_color(image):
#顏色模式轉換,以便輸出rgb顏色值
image=image.convert('RGBA')
#生成縮略圖,減少計算量,減小cpu壓力
image.thumbnail((200,200))
max_score=None
dominant_color=None
forcount,(r,g,b,a)inimage.getcolors(image.size[0]*image.size[1]):
#跳過純黑色
ifa==0:
continue
saturation=colorsys.rgb_to_hsv(r/255.0,g/255.0,b/255.0)[1]
y=min(abs(r*2104+g*4130+b*802+4096+131072)>>13,235)
y=(y-16.0)/(235-16)
#忽略高亮色
ify>0.9:
continue
#Calculatethescore,.
#Add0.1tothesaturationsowedon'tcompletelyignoregrayscale
#,butstillgivethemalow
#weight.
score=(saturation+0.1)*count
ifscore>max_score:
max_score=score
dominant_color=(r,g,b)
returndominant_color
if__name__=="__main__":
fromPILimportImage
importos
path=r'.\pics\'
fp=open('file_color.txt','w')
forfilenameinos.listdir(path):
printpath+filename
try:
color=get_dominant_color(Image.open(path+filename))
fp.write('Thecolorof'+filename+'is'+str(color)+' ')
except:
print"Thisfileformatisnotsupport"
fp.close()
pics文件夾和python程序在一個目錄下,產生的文件名file_color.txt也在這個目錄下。
看看能否幫到你
⑩ python3.5能用的圖片識別庫,可以識別圖片上的英文數字和漢字
先看看你的Visual Studio 14 運行庫(64位的系統X86/X64的最好都裝上)是不是沒有裝,如果沒有安裝的話先裝上;如果已經安裝了的話,修復一下看看。如果還不行的話那就意味著這些庫暫時還不支持Python 3.5.2,還得耐心等待或者使用其他能實現所需要功能的庫。你可以試試下載EXE文件自己安裝,或者下載源碼自己編譯。
我在我的電腦(XP/Python3.4.4)上用pip安裝試了一下,tesseract-ocr安裝不上,其他兩個沒有問題,估計暫時還不支持Python3.X吧。
tesseract-ocr的EXE安裝包下載地址:https://sourceforge.net/projects/tesseract-ocr-alt/files/?source=navbar
我沒有嘗試使用EXE安裝包安裝樓主可以自己嘗試一下。
希望對樓主有幫助。