如何使用OpenCV+Python去除手機拍攝文本底色

本篇文章為大家展示了如何使用OpenCV+Python去除手機拍攝文本底色,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

創(chuàng)新互聯(lián)建站專注于公主嶺企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),商城網(wǎng)站定制開發(fā)。公主嶺網(wǎng)站建設(shè)公司,為公主嶺等地區(qū)提供建站服務(wù)。全流程按需策劃設(shè)計,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)

最近經(jīng)常被要求手機拍攝考試卷,但是拍攝完之后,跟實際的黑白考試卷有很大的色差,打印出來之后背景就變成了灰色,看著很不舒服。于是我想起了好久以前,我用過的一個軟件叫全能掃描王,發(fā)現(xiàn)它里面是有去除這種文本底色的功能的,但是有時候也很坑!我就想手動寫一個簡單python程序來實現(xiàn)。最終我寫出的程序測試效果如下:

如何使用OpenCV+Python去除手機拍攝文本底色

左側(cè)是用手機拍攝的圖像,右側(cè)是用opencv-python處理之后的結(jié)果。


思路分析

首先看一下輸入的原圖,(小學生作業(yè)找不到了,讓我給他打印是起因,他要手寫,我說我來處理一下打印出來),別人拍的原圖:

如何使用OpenCV+Python去除手機拍攝文本底色

我發(fā)現(xiàn)這些圖像基本上都是黑白紙張或者有些有虛線的紙張,我首先想到把文字部分從輸入圖像中都摳出來來,不需要太精準,大致就可以了,所以要獲取圖像中文字的mask,我就想到了用二值化的方法,我首先嘗試了全局二值化OTSU與三角法來獲取mask,發(fā)現(xiàn)效果都有點坑爹!圖示如下:

如何使用OpenCV+Python去除手機拍攝文本底色

最終效果是這樣,而當光線稍微有點不均勻的時候,這個就直接在二值話時候翻車了!會丟失信息,所以我想到了用自適應(yīng)的二值化方法,最終選擇:
binary = cv.adaptiveThreshold(image, 255, cv.ADAPTIVE_THRESH_GAUSSIAN_C, cv.THRESH_BINARY_INV, 25, 15)
 
該函數(shù)來完成二值化,實現(xiàn)mask提取

 
提取完成之后,通過了一個形態(tài)學操作來實現(xiàn)簡單的膨脹操作,這樣確保每個字像素范圍足夠大,不會丟失。最終自適應(yīng)的mask:

如何使用OpenCV+Python去除手機拍攝文本底色

然后與原圖實現(xiàn)與操作,得到真實文字區(qū)域,使用mask區(qū)域取反得到mask1,然后對mask與輸入的灰度圖像完成bitwise_and操作,得到的結(jié)果與mask1相加即可得到最終的效果,圖示如下:

如何使用OpenCV+Python去除手機拍攝文本底色

不會像二值話之后的那樣讓人眼睛看到不舒服的黑色,想要獲取該例子完整源代碼,請關(guān)注  公眾號,然后回復(fù) “ 文本去背景 ”  

下載1:leetcode 開源

在「AI算法與圖像處理」公眾號后臺回復(fù):leetcode,即可下載。每題都 runtime beats 100% 的開源好書,你值得擁有!

如何使用OpenCV+Python去除手機拍攝文本底色

   

上述內(nèi)容就是如何使用OpenCV+Python去除手機拍攝文本底色,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

新聞名稱:如何使用OpenCV+Python去除手機拍攝文本底色
本文地址:http://muchs.cn/article44/piccee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、做網(wǎng)站、網(wǎng)站排名、網(wǎng)站改版靜態(tài)網(wǎng)站、App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站