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

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

小白學Python之實現(xiàn)OCR識別

瀏覽:60日期:2022-08-06 15:58:04
目錄前期準備界面編寫截圖功能實現(xiàn)OCR實現(xiàn)內容顯示總結前期準備

在這個階段主要準備整個小程序的結構,既然要實現(xiàn)ocr,那么輸入就是一張圖片,而圖片這里采用屏幕截圖的方式獲得,輸出是文字,這里采用搜狗的ocr接口,我們把截好的圖片傳到搜狗ocr接口中,然后把返回的文字作為輸出即可。

由于想做一個小程序,所以要為程序做GUI,這里采用tkinter編制GUI界面。

界面編寫

界面主要就準備一個窗體,里面有菜單,給出OCR功能。

小白學Python之實現(xiàn)OCR識別

之后我們點擊菜單,則啟動一個截圖功能,在截圖完成后,我們就把截得的圖片傳入ocr接口并返回文字到主窗體中。

小白學Python之實現(xiàn)OCR識別

主面板的編寫則直接使用tkinter建立菜單等

root = Tk() root.title('小新的OCR')# 創(chuàng)建一個頂級菜單 menubar = Menu(root) # 創(chuàng)建一個下拉菜單“文件”,然后將它添加到頂級菜單中 filemenu = Menu(menubar, tearoff=False) filemenu.add_command(label='OCR', command=buttonCaptureClick, accelerator=’Ctrl+N’) filemenu.add_command(label='幫助',command=helpClick) filemenu.add_command(label='退出', command=root.quit) menubar.add_cascade(label='操作', menu=filemenu) # 顯示菜單 root.config(menu=menubar) root.bind_all('<Control-d>', lambda event: buttonCaptureClick()) #啟動消息主循環(huán) root.mainloop()

這樣變回產生一個窗體,用戶可以和這個窗體進行交互,你可以點擊菜單,然后找到其子菜單中的OCR一項,點擊它便會調用一個buttonCaptureClick的函數(shù),這個函數(shù)就來產生截圖,并且保存截圖。

截圖功能實現(xiàn)

截圖功能我也是參考網(wǎng)上的內容,原理就是先把整個屏幕給捕捉到,然后監(jiān)聽鼠標事件,當鼠標左邊按下則作為截圖的左頂點,鼠標左鍵松下則最為截圖的右底點,這樣我們截圖區(qū)域就出來了,然后進行保存即可。

#用來顯示全屏幕截圖并響應二次截圖的窗口類class MyCapture: def __init__(self, png):#變量X和Y用來記錄鼠標左鍵按下的位置self.X = tkinter.IntVar(value=0)self.Y = tkinter.IntVar(value=0)#屏幕尺寸screenWidth = root.winfo_screenwidth()screenHeight = root.winfo_screenheight()#創(chuàng)建頂級組件容器self.top = tkinter.Toplevel(root, width=screenWidth, height=screenHeight)#不顯示最大化、最小化按鈕self.top.overrideredirect(True)self.canvas = tkinter.Canvas(self.top,bg=’white’, width=screenWidth, height=screenHeight)#顯示全屏截圖,在全屏截圖上進行區(qū)域截圖self.image = tkinter.PhotoImage(file=png)self.text =''self.canvas.create_image(screenWidth//2, screenHeight//2, image=self.image)#鼠標左鍵按下的位置def onLeftButtonDown(event): self.X.set(event.x) self.Y.set(event.y) #開始截圖 self.sel = Trueself.canvas.bind(’<Button-1>’, onLeftButtonDown)#鼠標左鍵移動,顯示選取的區(qū)域def onLeftButtonMove(event): if not self.sel:return global lastDraw try:#刪除剛畫完的圖形,要不然鼠標移動的時候是黑乎乎的一片矩形self.canvas.delete(lastDraw) except Exception as e:pass lastDraw = self.canvas.create_rectangle(self.X.get(), self.Y.get(), event.x, event.y, outline=’black’)self.canvas.bind(’<B1-Motion>’, onLeftButtonMove)#獲取鼠標左鍵抬起的位置,保存區(qū)域截圖def onLeftButtonUp(event): self.sel = False try:self.canvas.delete(lastDraw) except Exception as e:pass sleep(0.1) #考慮鼠標左鍵從右下方按下而從左上方抬起的截圖 left, right = sorted([self.X.get(), event.x]) top, bottom = sorted([self.Y.get(), event.y]) pic = ImageGrab.grab((left+1, top+1, right, bottom)) fileName ='temp.jpg' pic.save(fileName) self.text = get_text(fileName) #關閉當前窗口 self.top.destroy()self.canvas.bind(’<ButtonRelease-1>’, onLeftButtonUp)#讓canvas充滿窗口,并隨窗口自動適應大小self.canvas.pack(fill=tkinter.BOTH, expand=tkinter.YES) #開始截圖def buttonCaptureClick(): #最小化主窗口# root.state(’icon’) root.withdraw() sleep(0.4) filename = ’temp.png’ #grab()方法默認對全屏幕進行截圖 im = ImageGrab.grab() im.save(filename) im.close() #顯示全屏幕截圖 w = MyCapture(filename) root.wait_window(w.top) #截圖結束,恢復主窗口,并刪除臨時的全屏幕截圖文件 root.update() root.deiconify() text1.config(state = NORMAL) text1.delete(0.0,END) text1.insert(’insert’,w.text) text1.config(state = DISABLED) text1.pack() os.remove(filename)OCR實現(xiàn)

因為OCR其實是采用了搜狗的接口,所以需要做的工作也不是很多,只需要把我們的圖片傳入即可。

def get_text(img_path): print('') img = img_path # 圖片路徑 files = {'pic_path': open(img, 'rb')} # files # 類似data數(shù)據(jù) url = 'http://pic.sogou.com/pic/upload_pic.jsp' # post的url keywords = requests.post(url, files=files).text # requests 提交圖片 url = 'http://pic.sogou.com/pic/ocr/ocrOnline.jsp?query=' + keywords # keywords就是圖片url此方式為get請求 ocrResult = requests.get(url).json() # 直接轉換為json格式contents = ocrResult[’result’] # 類似字典 把result的value值取出來 是一個list然后里面很多json就是識別的文字 text = '' for content in contents: # 遍歷所有結果text+=(content[’content’].strip()+’n’) # strip去除空格 他返回的結果自帶一個換行 return text內容顯示

內容顯示是在截圖結束后我們把ocr識別的內容存儲起來

self.text = get_text(fileName)

然后再顯示到主窗體上

text1.config(state = NORMAL) text1.delete(0.0,END) text1.insert(’insert’,w.text) text1.config(state = DISABLED) text1.pack() 總結

雖然是一個完整的項目,但是其中的很多模塊其實都是借用其他人的模塊,而我做的只是把他們結合起來做成一個小項目,所以是站在巨人的肩膀上開發(fā)。

到此這篇關于Python實現(xiàn)OCR識別的文章就介紹到這了,更多相關Python實現(xiàn)OCR識別內容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持好吧啦網(wǎng)!

參考:

https://cloud.tencent.com/developer/article/1097904 https://morvanzhou.github.io/tutorials/python-basic/tkinter/ https://www.52pojie.cn/thread-708177-1-1.html
標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
婷婷精品视频| 在线日韩中文| 免费的成人av| 日韩视频不卡| 夜夜嗨网站十八久久| 性欧美69xoxoxoxo| 91精品福利| 夜夜嗨一区二区三区| 久久亚洲风情| 亚洲精品在线国产| 香蕉久久国产| 蜜桃免费网站一区二区三区| 免费成人在线视频观看| 中文字幕av亚洲精品一部二部 | 欧美国产另类| 国模大尺度视频一区二区| 国产精品二区不卡| 日韩深夜视频| 午夜国产一区二区| 爽好多水快深点欧美视频| 伊人久久亚洲| 国产免费久久| 国产中文欧美日韩在线| 成人在线观看免费视频| 久久久精品午夜少妇| 欧美另类专区| 日本在线成人| 精品国产精品国产偷麻豆| 色网在线免费观看| 91精品99| 婷婷综合一区| 国产极品一区| 日本不良网站在线观看| 美女网站一区| 日韩午夜视频在线| 成人亚洲一区二区| 亚洲成人日韩| 国产精品亚洲产品| 裤袜国产欧美精品一区| 夜夜精品视频| 国产精品久久乐| 色婷婷狠狠五月综合天色拍| 亚洲天堂日韩在线| 精品视频在线观看网站| 在线一区欧美| 麻豆视频一区| 亚洲精品成人| 久久精品99国产精品日本| 日韩av在线播放网址| 亚洲在线观看| 欧美成人一二区| 欧美~级网站不卡| 日本午夜精品视频在线观看| 久久精品国产一区二区| 中文精品视频| 精品国产99| 蜜桃一区二区三区在线观看| 成人精品视频| 日韩精品视频网| 激情六月综合| 国产精品宾馆| 狠狠爱成人网| 精品三级在线观看视频| 亚洲欧美日韩视频二区| 麻豆国产精品视频| 手机精品视频在线观看| 91视频久久| 日韩不卡一二三区| 韩国三级一区| 国产私拍福利精品视频二区| 不卡中文一二三区| 国产videos久久| 日日夜夜免费精品视频| 99视频精品全国免费| 麻豆成人91精品二区三区| 日韩精品一级二级| 日韩精品专区| 国产高清日韩| 综合在线一区| 亚洲国产专区| 色综合五月天| 国产欧美在线观看免费| 每日更新成人在线视频| 成人在线视频免费| 国产亚洲欧美日韩精品一区二区三区 | 天海翼亚洲一区二区三区| 色老板在线视频一区二区| 免费在线观看一区| 亚洲主播在线| 99久久99久久精品国产片果冰| 国产精品亚洲综合色区韩国| 亚洲一区二区免费在线观看| 欧美日韩精品在线一区| 成人高清一区| 久久99精品久久久野外观看| 日韩精品乱码av一区二区| 国产精品人人爽人人做我的可爱| 日韩国产欧美| 国产精品成久久久久| 国产精品777777在线播放 | 中文精品在线| 国产在线不卡| 久久精品午夜| 国产精品天堂蜜av在线播放| 亚洲精品激情| 男女男精品网站| 亚洲欧美一区在线| 欧美成人精品| 91精品国产自产在线观看永久∴ | 国产精品亚洲四区在线观看| 婷婷久久免费视频| 视频一区二区欧美| 婷婷激情综合| 久久精品国语| 91精品国产福利在线观看麻豆| 日韩在线观看一区| 亚洲播播91| 久久男女视频| 激情综合自拍| japanese国产精品| 在线亚洲观看| 伊人www22综合色| 亚洲九九精品| 日韩成人午夜精品| 国产欧美一区| 久久不见久久见中文字幕免费| 国产精品极品在线观看| 久久不卡国产精品一区二区| 国产精品一区免费在线| 欧美自拍一区| 国产精品美女午夜爽爽| 欧美a在线观看| 捆绑调教日本一区二区三区| 日韩精品第一区| 久久婷婷亚洲| 亚洲欧美日韩国产一区| 亚洲精品护士| 欧美日韩a区| 麻豆一区二区三| 亚洲黄色免费av| 亚洲第一精品影视| 亚洲免费在线| 人人精品久久| 国产精品欧美在线观看| 国产精品任我爽爆在线播放| 国产suv精品一区二区四区视频| 欧美日韩精品免费观看视欧美高清免费大片| 免费观看亚洲| 日韩视频在线一区二区三区 | 美女久久99| 久久久久久夜| 天堂资源在线亚洲| 视频一区在线播放| 国产美女视频一区二区| 岛国av在线网站| 欧美搞黄网站| 亚洲精品在线二区| 欧美激情在线精品一区二区三区| 国产精品蜜芽在线观看| 欧美1级日本1级| 午夜亚洲福利| 久久一区国产| 久久久久美女| 久久性天堂网| 国产精品免费大片| 亚洲成av在线| 亚洲三级观看| 精品72久久久久中文字幕| 免费观看久久av| 日本免费一区二区视频| 国产精品99久久精品| 亚洲在线国产日韩欧美| 国产精品一区二区精品| 人人香蕉久久| 日本免费在线视频不卡一不卡二| 精品三级在线观看视频| 91久久亚洲| 久久不见久久见免费视频7| 精精国产xxxx视频在线播放| 老鸭窝毛片一区二区三区| 久久国产精品色av免费看| 久久亚洲国产| 国产亚洲欧美日韩在线观看一区二区| 在线观看精品| 日韩国产欧美视频| 亚洲成人不卡| 欧美另类中文字幕| 久久精品国产亚洲夜色av网站| 97成人超碰| 亚洲国产专区| 麻豆一区二区三| 亚洲伊人影院| 免费污视频在线一区| 日本一区免费网站| 日韩精品午夜| 国产毛片精品| 视频在线观看国产精品| 日韩啪啪电影网| 国产精品.xx视频.xxtv| 三级在线观看一区二区|