日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

图像增强之对比度拉伸

發布時間:2025/3/20 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图像增强之对比度拉伸 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們前面提到過圖像二值化,圖像反轉,本質上是對圖像的所有像素點的灰度進行操作,屬于灰度變換的內容。灰度變換的主要目的是用于圖像增強

而對比度拉伸是圖像增強的一種方法,也屬于灰度變換操作。我們看如下圖像:

可以看到,這張圖片非常灰暗。我們查看下其直方圖。

import cv2 import matplotlib.pyplot as pltfarina = cv2.imread("farina.png", 0)hist_full = cv2.calcHist([farina], [0], None, [256], [0, 256])plt.plot(hist_full) plt.show()


可以看到所有像素的灰度值大部分集中在20-50之間,這使得整個圖像很暗淡。也就是說對比度不高。如果我們通過灰度變換,將灰度值拉伸到整個0-255的區間,那么其對比度顯然是大幅增強的。可以用如下的公式來將某個像素的灰度值映射到更大的灰度空間:

I(x,y=I(x,y)?IminImax?Imin(MAX?MIN)+MINI(x,y)=I(x,y)?IminImax?Imin(MAX?MIN)+MIN

其中Imin,Imax是原始圖像的最小灰度值和最大灰度值,MIN和MAX是要拉伸到的灰度空間的灰度最小值和最大值。

Imax = np.max(farina) Imin = np.min(farina) MAX = 255 MIN = 0 farina_cs = (farina - Imin) / (Imax - Imin) * (MAX - MIN) + MIN cv2.imshow("farina_cs", farina_cs.astype("uint8")) cv2.waitKey()

可以看出,對比度提升了很多。我們再看看其直方圖,可以看到已經充滿了整個灰度空間。

除了上述方法,對比度拉伸還有其它方法嗎?當然是有的。例如直方圖位移法(Histogram shifting)。公式如下:,

I(x,y)=I(x,y)+offsetI(x,y)=I(x,y)+offset
在每個像素位置的灰度值增加一個偏移量offset。注意,這個offset可以是正數,也可以是負數。正的話,整體亮度變亮,負的話,整體亮度變暗。需要注意的是控制offset的值大小,不要越界。

farina_cs = farina + 100 cv2.imshow("farina_offset", farina_cs.astype("uint8")) cv2.waitKey() hist_full = cv2.calcHist([farina_cs.astype("uint8")], [0], None, [256], [0, 256]) plt.plot(hist_full) plt.show()

下面分別是使用直方圖位移方法后的圖像和其直方圖。

可以看出直方圖與原始直方圖形狀一模一樣,只是在橫軸上有所偏移。這種方法的圖像增強效果并沒有上一種方法好。

總結

以上是生活随笔為你收集整理的图像增强之对比度拉伸的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。