影象處理與影象識別筆記(三)影象增強
阿新 • • 發佈:2018-12-15
影象增強的目的是為了改善影象的視覺效果,為了更便於人或機器的分析和處理,在不考慮影象降質(前提)的情況下,提高影象的可觀性。灰度變換是一種典型的影象增強方法。
一、灰度變換
將一個灰度區間對映到另一個灰度區間的變換稱為灰度變換,,灰度區間是指的灰度值區間,是黑色,是白色。灰色變換可使影象動態範圍加大,影象對比度擴充套件,影象清晰,特徵明顯。灰度變換可以分為線性變換和非線性變換。 1、線性變換 原始影象:,灰度範圍:,變換後的影象:,灰度範圍:,存在以下變換關係:
2、非線性變換 灰度變換的非線性變換方法包括對數變換和指數變換,對數變換公式為,這個變換擴充套件低灰度區的對比度,壓縮高灰度值。指數變換公式為,與對數變換相反, 指數變換對影象的高灰度區有較大的擴充套件。
線性灰度變換例項如下,
import cv2 import numpy as np import matplotlib.pyplot as plt import pylab def grayTransformLine(img,c,d):#線性灰度變換 img = img/255.0 #轉換為0-1 Min = img.min() Max = img.max() return (d-c)/(Max-Min)*(img-Min)+c def main(): img = cv2.imread('Lena.jpg',0) new_img = grayTransformLine(img,0.5,1)#變換到0.5-1,整體變亮 new_img2 = grayTransformLine(img,0,0.5)#變換到0-0.5,整體變灰暗 cv2.imshow('bright',new_img) cv2.imshow('dark',new_img2) cv2.waitKey(0) if __name__ == "__main__": main()
輸出結果如下,