訂閱
糾錯
加入自媒體

python中的圖像增強(qiáng)技術(shù)

關(guān)鍵詞:- 對數(shù)變換、冪律變換、圖像增強(qiáng)、對比度拉伸

數(shù)字圖像處理 (DIP) 對不同類別的圖像執(zhí)行各種操作,例如圖像增強(qiáng)、圖像分析、圖像壓縮、圖像變換等。

圖像增強(qiáng)用于對圖像進(jìn)行操作,以提取用戶識別的所需和重要的關(guān)鍵特征,例如:調(diào)整圖像的對比度值。

DIP的基本步驟

因此,在本博客中,我們將討論圖像銳化/增強(qiáng)技術(shù)。

圖像銳化和恢復(fù)有助于通過關(guān)注已識別的特征、調(diào)整明暗區(qū)域之間的對比度、減少噪點(diǎn)、升級相機(jī)焦距、減少運(yùn)動模糊等來創(chuàng)建更好的圖像。

圖像銳化明確用于改善圖像描述,例如邊界、角落、對比度、邊緣、強(qiáng)度等。

以下是一些圖像預(yù)處理技術(shù),用于通過觀察其鄰域像素值來修改當(dāng)前像素的強(qiáng)度值。

對比拉伸

對比拉伸稱為歸一化,用于拉伸強(qiáng)度值的范圍以提高圖像的對比度。

Python/OpenCV 可以通過使用 min_max 歸一化的 cv2.normalize() 方法進(jìn)行對比度拉伸。

import cv2

import numpy as np

# read image

img = cv2.imread("messi.jpg")

# normalize float versions

norm_img1 = cv2.normalize(img, None, alpha=0, beta=1, norm_type=cv2.NORM_M(jìn)INMAX, dtype=cv2.CV_32F)

# scale to uint8

norm_img1 = (255*norm_img1).a(chǎn)stype(np.uint8)

cv2.imshow('original',img)

cv2.imshow('normalized1',norm_img1)

cv2.waitKey(0)

cv2.destroyAllWindows()

圖像閾值

圖像閾值用于將對象分割成兩類,即前景和背景。全局圖像閾值由 Otsu 方法完成。

閾值類型

1. cv2.THRESH_BINARY

2. cv2.THRESH_BINARY_INVY

3. cv2.THRESH_TRUNCY

4. cv2.THRESH_TOZEROY

5. cv2.THRESH_TOZERO_INVYimg

全局閾值

對數(shù)變換

對數(shù)變換用于將圖像的每個像素值替換為其對數(shù)值,以增強(qiáng)較低強(qiáng)度值的對比度。它有助于縮小較亮的像素值范圍并擴(kuò)大暗像素。當(dāng)需要減少圖像的偏度分布以獲得更好的解釋時,可以應(yīng)用此轉(zhuǎn)換。

import cv2

import numpy as np

import matplotlib.pyplot as plt

# Read an image

image = cv2.imread('baby.jpg')

# Apply log transformation method

c = 255 / np.log(1 + np.max(image))

log_image = c * (np.log(image + 1))

# Specify the data type so that

# float value will be converted to int

log_image = np.a(chǎn)rray(log_image, dtype = np.uint8)

# Display both images

plt.imshow(image)

plt.show()

plt.imshow(log_image)

plt.show()

對數(shù)變換

冪律變換(伽馬變換)

冪律變換用于從較亮圖像到較暗圖像突出顯示對象,可以通過以下表達(dá)式使用:s = c × r^ γ ,其中 s 和 r 分別是輸出和輸入圖像的像素值,c 是常數(shù)值,γ稱為伽馬值。為了減少不同強(qiáng)度值的計算機(jī)顯示器顯示問題,在此轉(zhuǎn)換中使用了不同的伽馬值

import numpy as np

import cv2

# Load the image

img = cv2.imread('baby.jpg')

# Apply Gamma=0.4 on the normalised image and then multiply by scaling constant (For 8 bit, c=255)

gamma_point_four = np.a(chǎn)rray(255*(img/255)**0.4,dtype='uint8')

# Similarly, Apply Gamma=0.8

gamma_point_eight = np.a(chǎn)rray(255*(img/255)**0.8,dtype='uint8')

# Display the images in subplots

img3 = cv2.hconcat([gamma_point_four,gamma_point_eight])

cv2.imshow('a2',img3)

cv2.waitKey(0)

希望你喜歡閱讀這篇文章,希望它能幫助你了解不同類型的圖像增強(qiáng)技術(shù)。

image.png


       原文標(biāo)題 : python中的圖像增強(qiáng)技術(shù)

聲明: 本文由入駐維科號的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場。如有侵權(quán)或其他問題,請聯(lián)系舉報。

發(fā)表評論

0條評論,0人參與

請輸入評論內(nèi)容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗證碼繼續(xù)

暫無評論

暫無評論

    人工智能 獵頭職位 更多
    掃碼關(guān)注公眾號
    OFweek人工智能網(wǎng)
    獲取更多精彩內(nèi)容
    文章糾錯
    x
    *文字標(biāo)題:
    *糾錯內(nèi)容:
    聯(lián)系郵箱:
    *驗 證 碼:

    粵公網(wǎng)安備 44030502002758號