91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用OpenCV怎么刪除圖片中的陰影

發布時間:2021-03-29 17:59:09 來源:億速云 閱讀:353 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關使用OpenCV怎么刪除圖片中的陰影,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

numpy的ndarray數組

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

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

pip install opencv-python

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

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

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

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

創建ndarray數組:我們通過np.array可以將現有的列表裝換成一個ndarray對象,這個很好理解

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

[False True False False]

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

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

arr[res] = 10

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

下面是arr最后的結果:

[ 1 10 1 1]

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

四、去除陰影

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

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

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

使用OpenCV怎么刪除圖片中的陰影

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

img[img > 40] = 255

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

五、改進

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

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)

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

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

上述就是小編為大家分享的使用OpenCV怎么刪除圖片中的陰影了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

富源县| 汤原县| 永登县| 六枝特区| 迁安市| 滕州市| 兰溪市| 邯郸县| 临洮县| 兴宁市| 罗定市| 浙江省| 和政县| 虞城县| 巴彦县| 江川县| 平遥县| 四川省| 扶风县| 延边| 霍邱县| 长岛县| 石屏县| 延庆县| 吴桥县| 原平市| 长乐市| 鹤峰县| 鹿邑县| 遂川县| 衢州市| 丰原市| 大荔县| 建阳市| 轮台县| 双流县| 嘉祥县| 迭部县| 临清市| 武山县| 团风县|