<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    [Python圖像處理] 十五.圖像的灰度線性變換

    VSole2022-12-14 10:04:43
    學Python近八年,認識了很多大佬和朋友,感恩。深知自己很菜,得拼命努力前行,編程也沒有什么捷徑,干就對了。希望未來能更透徹學習和撰寫文章,同時非常感謝參考文獻中的大佬們的文章和分享,共勉。
    - https://blog.csdn.net/eastmount

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

    圖像的灰度線性變換是通過建立灰度映射來調整原始圖像的灰度,從而改善圖像的質量,凸顯圖像的細節,提高圖像的對比度。灰度線性變換的計算公式如下所示:

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

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

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


    二.圖像灰度上移變換

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

    # -*- 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]
    #創建一幅圖像result = np.zeros((height, width), np.uint8)
    #圖像灰度上移變換 DB=DA+50for 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實現代碼如下所示:

    # -*- 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]
    #創建一幅圖像result = np.zeros((height, width), np.uint8)
    #圖像對比度增強變換 DB=DA*1.5for 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實現代碼如下所示:

    # -*- 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]
    #創建一幅圖像result = np.zeros((height, width), np.uint8)
    #圖像對比度減弱變換 DB=DA*0.8for 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()
    

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


    五.圖像灰度反色變換

    反色變換又稱為線性灰度求補變換,它是對原圖像的像素值進行反轉,即黑色變為白色,白色變為黑色的過程。其Python實現代碼如下所示:

    # -*- 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]
    #創建一幅圖像result = np.zeros((height, width), np.uint8)
    #圖像灰度反色變換 DB=255-DAfor 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()
    

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

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

    寫到這里,這篇文章就介紹結束。希望文章對大家有所幫助,如果有錯誤或不足之處,還請海涵。文章寫于連續奔波考博,經歷的事情太多,有喜有悲,需要改變自己好好對家人,也希望讀者與我一起加油。

    線性變換gray
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    Python圖像處理第15篇介紹灰度線性變換,希望對您有所幫助
    Python圖像處理第12篇介紹圖像幾何變換基礎知識
    針對復雜場景下人臉識別性能欠佳的問題,本文提出一種高質量類中心學習方法,通過改善類中心質量實現人臉識別模型性能的提升。
    現在,俄羅斯的密碼學研究已經被公認具有一流水平。· 安全性較高,抗各種攻擊手段,包括差分攻擊、線性攻擊等。在俄羅斯國內,VKO 算法已被廣泛應用于國家機密信息的保護和加密處理中。該算法是俄羅斯國家信息安全標準,用于保護政府、軍隊、金融等機構的機密信息。MAG 算法已經成為俄羅斯國家信息安全標準,有望在該國范圍內得到廣泛的應用。
    摘 要目前,隨著網絡安全風險的與日俱增,網絡威脅已進入未知威脅時代。負反饋控制器用于根據系統運行情況調整執行體集合和異構體集合的組合關系。ZUC 算法已被采納為國際電信聯盟移動通信安全算法的一部分。SM3是用于消息摘要的哈希算法,它采用 256 位消息長度和 256 位摘要長度,使用非線性函數、置換和模加等多種操作,以保證高強度的哈希安全性。SM3 算法已成為國際標準化組織中的重要哈希算法之一。
    SM2、SM3、SM4 算法均由中國國家密碼管理局發布,并先后成為密碼行業標準、國家標準及國際標準 。SM3 算法是我國采用的密碼雜湊函數標準,消息分組長度為512 位,摘要值長度為 256 位。SM3 算法廣泛應用于密碼協議、數字簽名、消息鑒別、完整性認證等領域。二進制表示方法將 k 以二進制的形式展開為通過展開后的二進制串使用霍納法則計算 k。
    為了得到更好的數據分析結果,需要對這些數據集進行數據清洗和停用詞過濾等操作,這里利用Jieba庫進行清洗數據。向量空間模型是用向量來表征一個文本,它將中文文本轉化為數值特征。貴州省位于中國的西南地區,簡稱“黔”或“貴”。
    2021年6月25日,我國SM4分組密碼算法作為國際標準ISO/IEC 18033-3:2010/AMD1:2021《信息技術 安全技術 加密算法 第3部分:分組密碼 補篇1:SM4》,由國際標準化組織ISO/IEC正式發布。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类