<del id="d4fwx"><form id="d4fwx"></form></del>
      <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

            <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
          • 怎么在python中利用opencv去除圖片陰影-創(chuàng)新互聯(lián)

            這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)怎么在python中利用opencv去除圖片陰影,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

            成都創(chuàng)新互聯(lián)公司專注于網(wǎng)站建設(shè)|成都網(wǎng)站維護|優(yōu)化|托管以及網(wǎng)絡(luò)推廣,積累了大量的網(wǎng)站設(shè)計與制作經(jīng)驗,為許多企業(yè)提供了網(wǎng)站定制設(shè)計服務(wù),案例作品覆蓋成都被動防護網(wǎng)等行業(yè)。能根據(jù)企業(yè)所處的行業(yè)與銷售的產(chǎn)品,結(jié)合品牌形象的塑造,量身制作品質(zhì)網(wǎng)站。

            首先為了方便處理,我們通常會對圖片進行灰度轉(zhuǎn)換(即將圖片轉(zhuǎn)換成只有一個圖層的灰色圖像)。

            然后我們分析一下,在上面的圖片中有三個主色調(diào),分別是字體顏色(黑色)、紙張顏色(偏白)、陰影顏色(灰色)。知道這點后我們就好辦了。我們只需要把灰色和白色部分都處理為白色就好了。

            那要我怎么才知道白色和灰色區(qū)域呢?對于一個8位的灰度圖,黑色部分的像素大致在0-30左右。白色和灰色應(yīng)該在31-255左右(這個范圍只是大致估計,實際情況需要看圖片)。如圖:

            怎么在python中利用opencv去除圖片陰影

            左邊是原圖,右邊是處理后的圖片。我們將灰色和接近白色的部分都處理成了白色。

            那下面我們就開始處理吧。

            三、numpy的ndarray數(shù)組

            可能有些讀者沒有接觸過numpy,這里簡單說一下。

            numpy是一個第三方的模塊,用它我們可以很方便的處理多維數(shù)組(ndarray數(shù)組)。而圖片在OpenCV中的存儲方式正好是ndarray,所以我們對數(shù)組的操作就是對圖片的操作。

            在使用之前我們需要安裝一下OpenCV模塊:

            pip install opencv-python

            在安裝OpenCV時會自動安裝numpy。

            下面我們主要是看看布爾索引的操作,先看下面代碼:

            import numpy as np
            # 創(chuàng)建一個元素為1, 0, 1, 1的ndarray數(shù)組
            arr = np.array([1, 0, 1, 1])
            # 判斷數(shù)組中有沒有0
            res = arr == 0
            # 將數(shù)組中為0的元素賦值為10
            arr[res] = 10

            如果沒有接觸過numpy會不太理解上面的語法。我們來詳細說一下:

            1.創(chuàng)建ndarray數(shù)組:我們通過np.array可以將現(xiàn)有的列表轉(zhuǎn)換成一個ndarray對象,這個很好理解

            2.判斷數(shù)組中有沒有0:我們可以直接用ndarray對象來判斷,比如:arr == 0,他會返回一個元素結(jié)構(gòu)和數(shù)量一樣的ndarray對象。但是返回的對象原始類型是bool,我們來看看res的輸出:

            [False True False False]

            從結(jié)果可以看出,我們比較arr==0就是對數(shù)組中每個元素進行比較,并返回比較的布爾值。

            3.將數(shù)組中為0的元素賦值為10:而最難理解的arr[res]操作。它其實就是拿到res中為True的視圖,比如上面的結(jié)果是第二個為True則只會返回第二個元素的視圖。我們執(zhí)行下面的代碼:

            arr[res] = 10

            就是把對應(yīng)res為True的部分賦值為10,也就是將arr中值為0的部分賦值為10。

            下面是arr最后的結(jié)果:

            [ 1 10 1 1]

            可以看到原本的0處理為了10。

            四、去除陰影

            現(xiàn)在我們知道了布爾索引,我們可以對圖片進行處理了。我們只需要讀取圖片,然后將像素值大于30的部分處理為白色就好了。下面是我們的代碼:

            import cv2
            # 讀取圖片
            img = cv2.imread('page.jpg', 0)
            # 將像素值大于30的部分修改為255(白色)
            img[img > 30] = 255
            # 保存修改后的圖片
            cv2.imwrite('res.jpg', img)

            上面的代碼非常簡單,我們使用cv2.imread函數(shù)讀取圖片,第一個參數(shù)是圖片路徑,第二個參數(shù)表示讀取為灰度圖。我們來看看效果圖:

            怎么在python中利用opencv去除圖片陰影

            可以看到陰影部分被很好地去除了。有些字比較模糊,我們可以通過調(diào)節(jié)灰白色的范圍調(diào)整。比如:

            img[img > 40] = 255

            具體的值就要根據(jù)要處理的圖片來決定了。

            五、改進

            對于上面的處理,還可以做一個小小的改進。我們可以讓紙張顏色不那么白,我們來看改進后的代碼:

            import cv2
            import numpy as np
            img = cv2.imread('page.jpg', 0)
            # 計算灰白色部分像素的均值
            pixel = int(np.mean(img[img > 140]))
            # 把灰白色部分修改為與背景接近的顏色
            img[img > 30] = pixel
            cv2.imwrite('res.jpg', img)

            在上面的代碼中我們不再是將灰白色部分設(shè)置為255,而是事先計算了一個數(shù)值。

            pixel = int(np.mean(img[img > 140]))

            上述就是小編為大家分享的怎么在python中利用opencv去除圖片陰影了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

            本文名稱:怎么在python中利用opencv去除圖片陰影-創(chuàng)新互聯(lián)
            標(biāo)題來源:http://www.jbt999.com/article10/eehdo.html

            成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、定制網(wǎng)站、ChatGPT、靜態(tài)網(wǎng)站、企業(yè)建站、營銷型網(wǎng)站建設(shè)

            廣告

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

            成都網(wǎng)站建設(shè)

              <del id="d4fwx"><form id="d4fwx"></form></del>
              <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

                    <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
                  • 国家黄色在线免费看 | 日韩无码性爱视频 | 亚洲日韩欧美一区二区 | 亚洲一区二区政府在线播放IV | 亚洲无码第一页 |