摘要:本文主要講解灰度線性變換。
本文分享自華為云社區(qū)《[Python圖像處理] 十五.圖像的灰度線性變換》,作者:eastmount。
成都創(chuàng)新互聯(lián)公司是一家專業(yè)從事成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計的網(wǎng)絡(luò)公司。作為專業(yè)網(wǎng)站制作公司,成都創(chuàng)新互聯(lián)公司依托的技術(shù)實力、以及多年的網(wǎng)站運營經(jīng)驗,為您提供專業(yè)的成都網(wǎng)站建設(shè)、網(wǎng)絡(luò)營銷推廣及網(wǎng)站設(shè)計開發(fā)服務(wù)!
圖像的灰度線性變換是通過建立灰度映射來調(diào)整原始圖像的灰度,從而改善圖像的質(zhì)量,凸顯圖像的細(xì)節(jié),提高圖像的對比度?;叶染€性變換的計算公式如下所示:
該公式中DB表示灰度線性變換后的灰度值,DA表示變換前輸入圖像的灰度值,α和b為線性變換方程f(D)的參數(shù),分別表示斜率和截距。
如圖所示,顯示了圖像的灰度線性變換對應(yīng)的效果圖。
該算法將實現(xiàn)圖像灰度值的上移,從而提升圖像的亮度,其實現(xiàn)代碼如下所示。由于圖像的灰度值位于0至255區(qū)間之內(nèi),所以需要對灰度值進行溢出判斷。
# -*- coding: utf-8 -*- import cv2 import numpyas np import matplotlib.pyplotas plt #讀取原始圖像 img= cv2.imread('miao.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()