向AI轉型的程序員都關注了這個號👇👇👇python
機器學習AI算法工程 公衆號:datayx程序員
1、提取紙張中的內容
一張照片中的感興趣區域老是沿着x,y,z三個軸都有必定傾斜(以下圖),要想把照片翻轉到平行位置,須要進行透視變換,而透視變換須要同一像素點變換先後的座標。由此能夠想到,提取矩形區域四個角的座標做爲變換前的座標,變換後的座標能夠設爲照片的四個角落,通過投影變換,矩形區域將會翻轉並充滿圖像。web
所以咱們要解決的問題變爲:提取矩形的四個角落、進行透視變換。面試
提取矩形角落座標算法
矩形的檢測主要是提取邊緣,圖片顯示部分的亮度一般高於周圍環境,咱們能夠將圖片閾值化,將圖片部分與周圍環境明顯的分別開來,這對後邊的邊緣檢測很是有幫助。flask
檢測矩形並提取座標須要對圖像進行預處理、邊緣檢測、提取輪廓、檢測凸包、角點檢測。數組
一、預處理轉爲灰度圖微信
因爲手機拍攝的照片像素可能會很高,爲了加快處理速度,咱們首先將圖像轉化爲灰度圖網絡
image = cv2.imread(Config.src)app
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
srcWidth, srcHeight, channels = image.shape
print(srcWidth, srcHeight)
二、中值濾波
binary = cv2.medianBlur(gray,7)
三、轉化爲二值圖像
ret, binary = cv2.threshold(binary, Config.threshold_thresh, 255, cv2.THRESH_BINARY)
cv2.imwrite("1-threshold.png", binary, [int(cv2.IMWRITE_PNG_COMPRESSION), 9])
此時圖片已經變成了這個樣子:
可見紙張頁面部分已經與背景環境分離開來。
四、邊緣檢測與輪廓處理
咱們用Canny算子邊緣檢測,提取輪廓
五、提取面積最大的輪廓並用多邊形將輪廓包圍
中文簡歷表格提取,手寫漢字識別(Python+OpenCV)
2、使用Python和OpenCV檢測和標記湖面輪廓
咱們將使用OpenCV探測地圖中湖面的輪廓,並標記面積最大的湖面。
經過OpenCV提供的cv2.imread能夠讀入原始圖片,讀入的圖片被表示成一個三維數組的結構,能夠經過數組下標訪問每個點的顏色信息。
圖片中面區域的RGB顏色爲[170,218,255],咱們只須要在圖片上檢查具備這種顏色的區域,這裏咱們容許正負10的誤差。另外注意,在OpenCV顏色表示的順序稍有不一樣,OpenCV採用的BGR順序。
OpenCV提供了cv2.inRange函數,這個函數對圖片進行二值化處理,將不在閥值範圍內的點變換爲黑色點[0,0,0],處於範圍內的點變換爲白色點[255,255,255]。
上面的代碼中,cv2.inRange函數處理後圖片後,調用cv2.imshow顯示處理後的二值化圖片:
OpenCV提供了cv2.findContours()函數提取二值化圖像的輪廓。對上面生成圖片上執行這個函數就能夠返回該圖片的區域輪廓。因爲執行該函數時會直接修改圖像,所以咱們複製一份圖像之傳給cv2.findContours();同時,OpenCV提供了cv2.drawContour()函數繪能夠把輪廓疊加到另外一張圖片上。
下面的代碼使用cv2.findContours()函數對mask圖片提取輪廓,並調用cv2.drawContour()把輪廓疊加在原始圖像。
咱們能夠看見全部湖面被標記,以下圖:
如今咱們對返回的輪廓就進行排序,第一個輪廓就是面積最大的。
閱讀過本文的人還看了如下文章:
《深度學習入門:基於Python的理論與實現》高清中文PDF+源碼
2019最新《PyTorch天然語言處理》英、中文版PDF+源碼
《21個項目玩轉深度學習:基於TensorFlow的實踐詳解》完整版PDF+附書代碼
PyTorch深度學習快速實戰入門《pytorch-handbook》
【下載】豆瓣評分8.1,《機器學習實戰:基於Scikit-Learn和TensorFlow》
李沐大神開源《動手學深度學習》,加州伯克利深度學習(2019春)教材
【Keras】完整實現‘交通標誌’分類、‘票據’分類兩個項目,讓你掌握深度學習圖像分類
如何利用全新的決策樹集成級聯結構gcForest作特徵工程並打分?
Machine Learning Yearning 中文翻譯稿
斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)
中科院Kaggle全球文本匹配競賽華人第1名團隊-深度學習與特徵工程
不斷更新資源
深度學習、機器學習、數據分析、python
搜索公衆號添加: datayx
長按圖片,識別二維碼,點關注
本文分享自微信公衆號 - 機器學習AI算法工程(datayx)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。