欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python圖像處理之圖像的灰度線性變換

 更新時間:2022年09月05日 11:05:55   作者:華為云開發(fā)者聯(lián)盟???????  
這篇文章主要介紹了Python圖像處理之圖像的灰度線性變換,文章圍繞主題展開詳細的內容戒殺,具有一定的參考價值,需要的小伙伴可以參考一下

一.圖像灰度線性變換原理

圖像的灰度線性變換是通過建立灰度映射來調整原始圖像的灰度,從而改善圖像的質量,凸顯圖像的細節(jié),提高圖像的對比度。

灰度線性變換的計算公式如下所示:

該公式中DB表示灰度線性變換后的灰度值,DA表示變換前輸入圖像的灰度值,α和b為線性變換方程f(D)的參數(shù),分別表示斜率和截距。

  • 當α=1,b=0時,保持原始圖像
  • 當α=1,b!=0時,圖像所有的灰度值上移或下移
  • 當α=-1,b=255時,原始圖像的灰度值反轉
  • 當α>1時,輸出圖像的對比度增強
  • 當0<α<1時,輸出圖像的對比度減小
  • 當α<0時,原始圖像暗區(qū)域變亮,亮區(qū)域變暗,圖像求補

如圖所示,顯示了圖像的灰度線性變換對應的效果圖:

二.圖像灰度上移變換

該算法將實現(xiàn)圖像灰度值的上移,從而提升圖像的亮度,其實現(xiàn)代碼如下所示。由于圖像的灰度值位于0至255區(qū)間之內,所以需要對灰度值進行溢出判斷。

# -*- coding: utf-8 -*-
import cv2
import numpy as np
import matplotlib.pyplot as plt
#讀取原始圖像
img = cv2.imread('miao.png')
#圖像灰度轉換
grayImage = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#獲取圖像高度和寬度
height = grayImage.shape[0]
width = grayImage.shape[1]
#創(chuàng)建一幅圖像
result = np.zeros((height, width), np.uint8)
#圖像灰度上移變換 DB=DA+50
for i in range(height):
for j in range(width):
if (int(grayImage[i,j]+50) > 255):
gray = 255
else:
gray = int(grayImage[i,j]+50)
result[i,j] = np.uint8(gray)
#顯示圖像
cv2.imshow("Gray Image", grayImage)
cv2.imshow("Result", result)
#等待顯示
cv2.waitKey(0)
cv2.destroyAllWindows()

其輸出結果如下圖所示,圖像的所有灰度值上移50,圖像變得更白了。注意,純黑色對應的灰度值為0,純白色對應的灰度值為255。

三.圖像對比度增強變換

該算法將增強圖像的對比度,Python實現(xiàn)代碼如下所示:

# -*- coding: utf-8 -*-
import cv2
import numpy as np
import matplotlib.pyplot as plt
#讀取原始圖像
img = cv2.imread('miao.png')
#圖像灰度轉換
grayImage = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#獲取圖像高度和寬度
height = grayImage.shape[0]
width = grayImage.shape[1]
#創(chuàng)建一幅圖像
result = np.zeros((height, width), np.uint8)
#圖像對比度增強變換 DB=DA*1.5
for i in range(height):
for j in range(width):
if (int(grayImage[i,j]*1.5) > 255):
gray = 255
else:
gray = int(grayImage[i,j]*1.5)

result[i,j] = np.uint8(gray)
#顯示圖像
cv2.imshow("Gray Image", grayImage)
cv2.imshow("Result", result)

其輸出結果如下圖所示,圖像的所有灰度值增強1.5倍。

四.圖像對比度減弱變換

該算法將減弱圖像的對比度,Python實現(xiàn)代碼如下所示:

# -*- coding: utf-8 -*-
import cv2
import numpy as np
import matplotlib.pyplot as plt
#讀取原始圖像
img = cv2.imread('miao.png')
#圖像灰度轉換
grayImage = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#獲取圖像高度和寬度
height = grayImage.shape[0]
width = grayImage.shape[1]
#創(chuàng)建一幅圖像
result = np.zeros((height, width), np.uint8)
#圖像對比度減弱變換 DB=DA*0.8
for i in range(height):
for j in range(width):
gray = int(grayImage[i,j]*0.8)
result[i,j] = np.uint8(gray)
#顯示圖像
cv2.imshow("Gray Image", grayImage)
cv2.imshow("Result", result)
#等待顯示
cv2.waitKey(0)
cv2.destroyAllWindows()

其輸出結果如下圖所示,圖像的所有灰度值減弱,圖像變得更暗。

五.圖像灰度反色變換

反色變換又稱為線性灰度求補變換,它是對原圖像的像素值進行反轉,即黑色變?yōu)榘咨?,白色變?yōu)楹谏倪^程。其Python實現(xiàn)代碼如下所示:

# -*- coding: utf-8 -*-
import cv2
import numpy as np
import matplotlib.pyplot as plt
#讀取原始圖像
img = cv2.imread('miao.png')
#圖像灰度轉換
grayImage = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#獲取圖像高度和寬度
height = grayImage.shape[0]
width = grayImage.shape[1]
#創(chuàng)建一幅圖像
result = np.zeros((height, width), np.uint8)
#圖像灰度反色變換 DB=255-DA
for i in range(height):
for j in range(width):
gray = 255 - grayImage[i,j]
result[i,j] = np.uint8(gray)
#顯示圖像
cv2.imshow("Gray Image", grayImage)
cv2.imshow("Result", result)
#等待顯示
cv2.waitKey(0)
cv2.destroyAllWindows()

其輸出結果如下圖所示,圖像處理前后的灰度值是互補的。

圖像灰度反色變換在醫(yī)學圖像處理中有一定的應用,如下圖所示:

到此這篇關于Python圖像處理之圖像的灰度線性變換的文章就介紹到這了,更多相關Python圖像線性變換內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python強大的hook函數(shù)使用及應用場景

    python強大的hook函數(shù)使用及應用場景

    鉤子函數(shù)(hook function)是把我們自己實現(xiàn)的hook函數(shù)在某一時刻掛接到目標掛載點上,這篇文章主要介紹了python強大的hook函數(shù)使用及應用場景,需要的朋友可以參考下
    2023-05-05
  • python如何用正則表達式提取字符串

    python如何用正則表達式提取字符串

    這篇文章主要介紹了python如何用正則表達式提取字符串問題,具有很好的參考價值,希望對大家有所幫助。
    2023-03-03
  • Python中的引用和拷貝淺析

    Python中的引用和拷貝淺析

    這篇文章主要介紹了Python中的引用和拷貝淺析,本文同時講解了深拷貝和淺拷貝、引用計數(shù)和垃圾回收等內容,需要的朋友可以參考下
    2014-11-11
  • 基于Python實現(xiàn)四維圖像繪制系統(tǒng)

    基于Python實現(xiàn)四維圖像繪制系統(tǒng)

    這篇文章主要為大家詳細介紹了如何基于Python語言實現(xiàn)一個簡單的四維圖像繪制系統(tǒng),文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-09-09
  • Python進階學習之帶你探尋Python類的鼻祖-元類

    Python進階學習之帶你探尋Python類的鼻祖-元類

    這篇文章主要介紹了Python進階學習之帶你探尋Python類的鼻祖-元類,文中有非常詳細的解釋,對正在學習python的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • Python 網(wǎng)頁解析HTMLParse的實例詳解

    Python 網(wǎng)頁解析HTMLParse的實例詳解

    這篇文章主要介紹了Python 網(wǎng)頁解析HTMLParse的實例詳解的相關資料,python里提供了一個簡單的解析模塊HTMLParser類,使用起來也是比較簡單的,解析語法沒有用到XPath類似的簡潔模式,需要的朋友可以參考下
    2017-08-08
  • python DataFrame轉dict字典過程詳解

    python DataFrame轉dict字典過程詳解

    這篇文章主要介紹了python DataFrame轉dict字典過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • 簡單了解python字符串前面加r,u的含義

    簡單了解python字符串前面加r,u的含義

    這篇文章主要介紹了簡單了解python字符串前面加r,u的含義,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • python用插值法繪制平滑曲線

    python用插值法繪制平滑曲線

    這篇文章主要為大家詳細介紹了python用插值法繪制平滑曲線,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • python給圖像加上mask,并提取mask區(qū)域實例

    python給圖像加上mask,并提取mask區(qū)域實例

    今天小編就為大家分享一篇python給圖像加上mask,并提取mask區(qū)域實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01

最新評論