日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OCR识别之图像预处理

發(fā)布時間:2025/3/15 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OCR识别之图像预处理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

OCR識別之圖像預(yù)處理

  • 圖像預(yù)處理之作用及效果
  • 圖像預(yù)處理之操作
  • 圖像預(yù)處理之源代碼

圖像預(yù)處理之作用及效果

無論是使用圖像來做識別還是別的操作,都需要對圖像做一定的預(yù)處理操作,預(yù)處理的作用是方便后續(xù)我們對圖像的識別,分類等操作。對于OCR識別來說要達到的效果如下圖:
原始輸入圖像:

預(yù)處理之后的圖像:

圖像預(yù)處理之操作

以本實例的圖像來說,首先需要找到內(nèi)部白色紙片的邊界,通過邊界找到它的輪廓信息。根據(jù)其輪廓信息,應(yīng)用Opencv中的輪廓近似得到大致的矩形區(qū)域,然后通過計算得到該矩形區(qū)域的寬高和四個頂點的坐標(biāo)。然后將該矩形區(qū)域,直接通過變換轉(zhuǎn)成(寬,高)的圖像。

圖像預(yù)處理之源代碼

img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) img_gauss_blur = cv2.GaussianBlur(img_gray,(5,5),0) img_canny = cv2.Canny(img_gray,34,158) #以上代碼,查找邊界#根據(jù)查找到的邊界信息,找到其輪廓信息 contours,h = cv2.findContours(img_canny,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)#根據(jù)具體的實例,在眾多輪廓中找到周長最大的前幾個 length = [] for i,contour in enumerate(contours):length.append(cv2.arcLength(contour,True)) index = np.argmax(length)#對找到的周長最大的幾個輪廓進行排序 def s(con):return cv2.arcLength(con,True) cnts = sorted(contours,key = s,reverse=True)[:1]#找到輪廓近似 long = cv2.arcLength(cnts[0],True) approx = cv2.approxPolyDP(cnts[0],0.1*long,True)res = cv2.drawContours(img.copy(),[approx],-1,(0,0,255),2)#通過近似輪廓找到四個頂點 tr = approx[0][0] br = approx[1][0] bl = approx[2][0] tl = approx[3][0]#通過四個頂點計算相應(yīng)的寬度和高度 widthr = int(np.sqrt((br[0]-tr[0])**2+(br[1]-tr[1])**2)) widthl = int(np.sqrt((bl[0]-tl[0])**2+(bl[1]-tl[1])**2)) width = np.max((widthr,widthl))heightb = int(np.sqrt((br[0]-bl[0])**2+(br[1]-bl[1])**2)) heightt = int(np.sqrt((tr[0]-tl[0])**2+(tr[1]-tl[1])**2)) height = np.max((heightb,heightt))#原始的矩形點,變換后的點 old_point = np.array([tl.tolist(),tr.tolist(),br.tolist(),bl.tolist()],np.float32) new_point = np.array([[0,height-1],[0,0],[width-1,0],[width-1,height-1]],np.float32)#得到轉(zhuǎn)換矩陣 M = cv2.getPerspectiveTransform(old_point,new_point)#得到轉(zhuǎn)換后的圖像 new_image = cv2.warpPerspective(img,M,(width-1,height-1))

總結(jié)

以上是生活随笔為你收集整理的OCR识别之图像预处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。