訂閱
糾錯(cuò)
加入自媒體

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

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

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

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

DIP的基本步驟

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

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

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

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

對(duì)比拉伸

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

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

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()

圖像閾值

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

閾值類型

1. cv2.THRESH_BINARY

2. cv2.THRESH_BINARY_INVY

3. cv2.THRESH_TRUNCY

4. cv2.THRESH_TOZEROY

5. cv2.THRESH_TOZERO_INVYimg

全局閾值

對(duì)數(shù)變換

對(duì)數(shù)變換用于將圖像的每個(gè)像素值替換為其對(duì)數(shù)值,以增強(qiáng)較低強(qiáng)度值的對(duì)比度。它有助于縮小較亮的像素值范圍并擴(kuò)大暗像素。當(dāng)需要減少圖像的偏度分布以獲得更好的解釋時(shí),可以應(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()

對(duì)數(shù)變換

冪律變換(伽馬變換)

冪律變換用于從較亮圖像到較暗圖像突出顯示對(duì)象,可以通過以下表達(dá)式使用:s = c × r^ γ ,其中 s 和 r 分別是輸出和輸入圖像的像素值,c 是常數(shù)值,γ稱為伽馬值。為了減少不同強(qiáng)度值的計(jì)算機(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ù)

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

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無評(píng)論

暫無評(píng)論

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

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