最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python圖像運算之圖像灰度線性變換詳解

 更新時間:2022年03月01日 09:15:24   作者:Eastmount  
這篇文章將詳細(xì)講解圖像灰度線性變換,包括灰度上移、對比度增強、對比度減弱和灰度反色變換。文中的示例代碼講解詳細(xì),需要的可以參考一下

一.灰度線性變換

圖像的灰度線性變換是通過建立灰度映射來調(diào)整原始圖像的灰度,從而改善圖像的質(zhì)量,凸顯圖像的細(xì)節(jié),提高圖像的對比度?;叶染€性變換的計算公式如(12-1)所示:

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

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

如圖12-1所示,顯示了圖像的灰度線性變換對應(yīng)的效果圖。

二.圖像灰度上移變換

該算法將實現(xiàn)圖像灰度值的上移,從而提升圖像的亮度。

DB=DA+50

具體實現(xiàn)代碼如下所示。由于圖像的灰度值位于0至255區(qū)間之內(nèi),所以需要對灰度值進行溢出判斷。

# -*- coding: utf-8 -*-
# By:Eastmount
import cv2  
import numpy as np  
import matplotlib.pyplot as plt

#讀取原始圖像
img = cv2.imread('luo.png')

#圖像灰度轉(zhuǎn)換
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()

其輸出結(jié)果如圖12-2所示,圖像的所有灰度值上移50,圖像變得更白了。注意,純黑色對應(yīng)的灰度值為0,純白色對應(yīng)的灰度值為255。

三.圖像對比度增強變換

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

DB=DA×1.5

# -*- coding: utf-8 -*-
# By:Eastmount
import cv2  
import numpy as np  
import matplotlib.pyplot as plt

#讀取原始圖像
img = cv2.imread('luo.png')

#圖像灰度轉(zhuǎn)換
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)

其輸出結(jié)果如圖12-3所示,圖像的所有灰度值增強1.5倍。

四.圖像對比度減弱變換

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

DB=DA×0.8

# -*- coding: utf-8 -*-
# By:Eastmount
import cv2  
import numpy as np  
import matplotlib.pyplot as plt

#讀取原始圖像
img = cv2.imread('luo.png')

#圖像灰度轉(zhuǎn)換
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()

其輸出結(jié)果如圖12-4所示,圖像的所有灰度值減弱,圖像變得更暗。

五.圖像灰度反色變換

反色變換又稱為線性灰度求補變換,它是對原圖像的像素值進行反轉(zhuǎn),即黑色變?yōu)榘咨咨優(yōu)楹谏倪^程。

DB=255-DA

其Python實現(xiàn)代碼如下所示:

# -*- coding: utf-8 -*-
# By:Eastmount
import cv2  
import numpy as np  
import matplotlib.pyplot as plt

#讀取原始圖像
img = cv2.imread('luo.png')

#圖像灰度轉(zhuǎn)換
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()

其輸出結(jié)果如圖12-5所示,圖像處理前后的灰度值是互補的。

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

六.總結(jié)

本文主要講解圖像灰度線性變換,包括圖像灰度上移、圖像對比度增強變換、圖像對比度減弱變換和圖像灰度反色變換。希望大家一定要自己實現(xiàn)文章中的代碼,更好地提升編程能力。

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

相關(guān)文章

  • 使用Python在Word表格中插入或刪除行或列的幾種方法

    使用Python在Word表格中插入或刪除行或列的幾種方法

    Word文檔中的表格可以用于組織和展示數(shù)據(jù),在實際應(yīng)用過程中,有時為了調(diào)整表格的結(jié)構(gòu)或適應(yīng)不同的數(shù)據(jù)展示需求,我們可能會需要插入、刪除行或列,本文提供了幾種使用Python在Word表格中插入或刪除行、列的方法供參考
    2024-07-07
  • Django中prefetch_related()函數(shù)優(yōu)化實戰(zhàn)指南

    Django中prefetch_related()函數(shù)優(yōu)化實戰(zhàn)指南

    我們可以利用Django框架中select_related和prefetch_related函數(shù)對數(shù)據(jù)庫查詢優(yōu)化,這篇文章主要給大家介紹了關(guān)于Django中prefetch_related()函數(shù)優(yōu)化的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • Python求1到n的階乘之和的實例

    Python求1到n的階乘之和的實例

    這篇文章主要介紹了Python求1到n的階乘之和的實例,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Python內(nèi)置函數(shù)delattr的具體用法

    Python內(nèi)置函數(shù)delattr的具體用法

    本篇文章主要介紹了Python內(nèi)置函數(shù)delattr的具體用法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • python繪制直方圖和密度圖的實例

    python繪制直方圖和密度圖的實例

    今天小編就為大家分享一篇python繪制直方圖和密度圖的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • python logging日志模塊原理及操作解析

    python logging日志模塊原理及操作解析

    這篇文章主要介紹了python logging日志模塊原理及操作解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • Python如何獲取免費高匿代理IP及驗證

    Python如何獲取免費高匿代理IP及驗證

    這篇文章主要介紹了Python如何獲取免費高匿代理IP及驗證問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Python合并重疊矩形框

    Python合并重疊矩形框

    這篇文章主要介紹了Python合并重疊矩形框,循環(huán)+遞歸,依次判斷兩個框是否有重疊,下面具體實現(xiàn)過程需要的小伙伴可以參考一下
    2022-03-03
  • Python常見異常類型處理

    Python常見異常類型處理

    這篇文章主要個大家分享的是Python常見異常類型處理,編寫程序的過程,難免會遇到一些錯誤,程序邏輯又或者運行與系統(tǒng)發(fā)生各種沖突等等,下面我們就來看看那些我們在編程中常遇到的異常都是怎么處理的吧,需要的小伙伴可以參考一下
    2021-12-12
  • Python Opencv中基礎(chǔ)的知識點

    Python Opencv中基礎(chǔ)的知識點

    這篇文章主要介紹了Python Opencv中基礎(chǔ)的知識點,主要包括創(chuàng)建窗口、保存圖片、采集視頻、鼠標(biāo)控制的代碼,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07

最新評論

芦山县| 保亭| 会理县| 沅江市| 高邑县| 漳平市| 天柱县| 曲麻莱县| 定州市| 普洱| 迭部县| 鲁甸县| 习水县| 昌邑市| 如皋市| 嘉峪关市| 安乡县| 特克斯县| 油尖旺区| 沧源| 贵州省| 徐水县| 平潭县| 聂荣县| 鄂州市| 江西省| 安仁县| 兰州市| 临江市| 商水县| 浪卡子县| 明光市| 莱州市| 洛扎县| 镇雄县| 三明市| 景洪市| 盘山县| 虞城县| 桂平市| 北碚区|