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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

OpenCV与图像处理学习五——图像滤波与增强:线性、非线性滤波、直方图均衡化与Gamma变换

發(fā)布時(shí)間:2024/7/23 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenCV与图像处理学习五——图像滤波与增强:线性、非线性滤波、直方图均衡化与Gamma变换 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

OpenCV與圖像處理學(xué)習(xí)五——圖像濾波與增強(qiáng):線性、非線性濾波、直方圖均衡化與Gamma變換

  • 三、圖像濾波與增強(qiáng)
    • 3.1 線性濾波
      • 3.1.1 方框?yàn)V波
      • 3.1.2 均值濾波
      • 3.1.3 高斯濾波
      • 3.1.4 一般卷積濾波
    • 3.2 非線性濾波
      • 3.2.1 中值濾波
      • 3.2.2 雙邊濾波
    • 3.3 圖像直方圖均衡化
      • 3.3.1 單通道圖像全局均衡化
      • 3.3.2 三通道圖像全局均衡化
      • 3.3.3 局部均衡化/對(duì)比度限制自適應(yīng)直方圖均衡化(CLAHE)
    • 3.4 Gamma變換

上兩次的筆記地址:
OpenCV與圖像處理學(xué)習(xí)三——圖像基本操作(1)
OpenCV與圖像處理學(xué)習(xí)四——圖像基本操作(2)

這次筆記的主要內(nèi)容為圖像濾波與增強(qiáng)。

對(duì)應(yīng)的OpenCV官方python文檔為:

三、圖像濾波與增強(qiáng)

所謂濾波實(shí)際上是信號(hào)處理領(lǐng)域的一個(gè)概念,就是將信號(hào)中特定頻率分量濾除的一項(xiàng)操作。而圖像又可以看成是一個(gè)二維信號(hào),其中像素值代表信號(hào)的強(qiáng)弱。

而圖像的高低頻的定義如下所示:

  • 高頻:圖像上變化劇烈的部分;
  • 低頻:圖像灰度值變化緩慢,平坦的地方。

根據(jù)圖像的高低頻,設(shè)置高通和低通濾波器可以對(duì)圖像進(jìn)行相應(yīng)的變化,其中高通濾波器可以檢測(cè)變化尖銳,明顯的地方,低通濾波器可以讓圖像變得平滑,消除噪聲。

所以總的來(lái)說(shuō),圖像濾波的作用:高通濾波器用于邊緣檢測(cè)(邊緣是像素值變化劇烈的地方),低通濾波器用于圖像的平滑去噪。

下面會(huì)介紹幾種濾波的方法,在此之前,還要先了解一個(gè)概念:領(lǐng)域算子,如下圖所示,利用給定像素周圍的像素值決定此像素的最終輸出值的一種算子。(其實(shí)就是后來(lái)的卷積操作)


線性濾波就是一種常用的領(lǐng)域算子,像素的輸出取決于輸入像素的加權(quán)和:

那么非線性濾波自然就不遵循這個(gè)規(guī)則。

此外,還將介紹可以改善圖像視覺(jué)效果的技術(shù)——直方圖均衡化與Gamma變換。

3.1 線性濾波

3.1.1 方框?yàn)V波

方框?yàn)V波被封裝在一個(gè)名為boxFilter的函數(shù)中,即boxFilter函數(shù)的作用是使用方框?yàn)V波器(box filter)來(lái)模糊一張圖片,從src輸入,從dst輸出,它是用如下的濾波核(領(lǐng)域算子)來(lái)計(jì)算的:

函數(shù):

dst = cv2.boxFilter( src, ddepth, ksize[, dst[, anchor[, normalize[, borderType]]]] )

參數(shù)如下所示:

  • src:輸入圖像。
  • dst:輸出圖像,與src同尺寸和類型。
  • ddepth:目標(biāo)圖像深度,-1表示使用src的圖像深度。
  • ksize:濾波核的尺寸,一般為奇數(shù)。
  • anchor:錨點(diǎn)位置,默認(rèn)為濾波核的中心位置。
  • normalize:表示濾波核是否需要標(biāo)準(zhǔn)化,為True的話就等于均值濾波的濾波核,為False的話很可能卷積計(jì)算的結(jié)果會(huì)超出 0-255 這個(gè)范圍。
  • 下面來(lái)看個(gè)例子:

    import cv2 import numpy as np img = cv2.imread('girl2.png', cv2.IMREAD_UNCHANGED) r = cv2.boxFilter(img, -1, (7,7), normalize = 1) d = cv2.boxFilter(img, -1, (3,3), normalize = 0) cv2.namedWindow('img', cv2.WINDOW_AUTOSIZE) cv2.namedWindow('r', cv2.WINDOW_AUTOSIZE) cv2.namedWindow('d', cv2.WINDOW_AUTOSIZE) cv2.imshow('img', img) cv2.imshow('r', r) cv2.imshow('d', d) cv2.waitKey(0) cv2.destroyAllWindows()

    輸出結(jié)果如下圖所示:

    可見如果將normalize參數(shù)設(shè)置為False,圖像計(jì)算出來(lái)的輸出很可能導(dǎo)致值過(guò)大。

    3.1.2 均值濾波

    均值濾波是一種最簡(jiǎn)單的濾波處理,它取得是卷積核區(qū)域內(nèi)元素的均值,用cv2.blur函數(shù)實(shí)現(xiàn),它的卷積核如下所示:

    舉個(gè)3×3的例子:

    函數(shù):

    dst = cv2.blur( src, ksize[, dst[, anchor[, borderType]]] )

    參數(shù)和方框?yàn)V波很相似,可以直接參考方框?yàn)V波的參數(shù)解釋。官方文檔特意強(qiáng)調(diào)了一句:

    The call blur(src, dst, ksize, anchor, borderType) is equivalent to boxFilter(src, dst, src.type(), anchor, true, borderType).

    再次說(shuō)明均值濾波是方框?yàn)V波的一個(gè)常用的特例。

    下面看個(gè)例子:

    import cv2 import numpy as np from matplotlib import pyplot as plt img = cv2.imread('image/opencv.png') cv2.imshow('img', img) cv2.waitKey(0) cv2.destroyAllWindows() img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) blur = cv2.blur(img, (3, 3)) plt.subplot(121), plt.imshow(img), plt.title('Original') plt.subplot(122), plt.imshow(blur), plt.title('Blurred') plt.xticks([]), plt.yticks([]) plt.show()

    輸出結(jié)果為:

    均值濾波之后的結(jié)果是會(huì)變的比較模糊,將核尺寸改為(7,7),輸出結(jié)果為:

    所以,均值濾波的核的尺寸越大,濾波之后的圖像越模糊

    3.1.3 高斯濾波

    高斯濾波是一種線性平滑濾波,適用于消除高斯噪聲,廣泛應(yīng)用于圖像處理的減噪過(guò)程。高斯濾波的卷積核權(quán)重就不像前面兩種濾波方法是一樣的了,它的中間像素點(diǎn)的權(quán)重最高,越遠(yuǎn)離中心的像素權(quán)重越小,其原理是一個(gè)二維高斯函數(shù),如下圖所示:

    高斯濾波相比均值濾波效率要慢,但是可以有效消除高斯噪聲,能保留更多的圖像細(xì)節(jié),所以被稱為最有用的濾波器。

    函數(shù):

    dst = cv2.GaussianBlur( src, ksize, sigmaX[, dst[, sigmaY[, borderType]]] )

    參數(shù)如下所示:

  • src:輸入圖像。
  • ksize:高斯核的尺寸,核的高度和寬度可以不等,但是必須是正的奇數(shù),也可以是0,那就通過(guò)sigma參數(shù)計(jì)算得到。
  • sigmaX:X方向上高斯分布的標(biāo)準(zhǔn)差,調(diào)整sigma其實(shí)是在調(diào)整周圍像素對(duì)當(dāng)前像素的影響程度,調(diào)大sigma即提高了遠(yuǎn)處像素對(duì)中心像素的影響程度,濾波結(jié)果也就越平滑。
  • sigmaY:Y方向上高斯分布的標(biāo)準(zhǔn)差。
  • 看個(gè)例子:

    import cv2 as cv import numpy as np from matplotlib import pyplot as plt img = cv.imread('image/median.png') img = cv.cvtColor(img, cv.COLOR_BGR2RGB) blur = cv.GaussianBlur(img, (7, 7), 7) plt.subplot(121), plt.imshow(img), plt.title('Original') plt.xticks([]), plt.yticks([]) plt.subplot(122), plt.imshow(blur), plt.title('Blurred') plt.xticks([]), plt.yticks([]) plt.show()

    結(jié)果如下所示:

    可見高斯濾波是一種很好的去除噪聲的濾波方法。

    3.1.4 一般卷積濾波

    上面三種是比較特殊的濾波方法,其卷積核內(nèi)的權(quán)重有規(guī)定的要求,而一般的卷積濾波的卷積核理論上可以是任意值,經(jīng)過(guò)適當(dāng)?shù)倪x擇和設(shè)置,可以完成一些特殊的操作。它的像素值計(jì)算公式如下所示:

    它所用到的函數(shù)是cv2.filter2D(),函數(shù)如下:

    dst = cv2.filter2D( src, ddepth, kernel[, dst[, anchor[, delta[, borderType]]]] )

    參數(shù)如下所示:

  • src:輸入圖像。
  • ddepth:圖像深度。
  • kernel:卷積核。
  • anchor:錨點(diǎn)位置,默認(rèn)為中心位置。
  • delta:可選項(xiàng),在計(jì)算得到的值的基礎(chǔ)上加上的值。
  • 看兩個(gè)例子,一個(gè)是用它來(lái)做均值濾波,一個(gè)是做特殊的操作——銳化,它們的差別就是所使用的卷積核不一樣:

    均值濾波

    import numpy as np import cv2 as cv from matplotlib import pyplot as plt img = cv.imread('./image/opencv.png') kernel = np.ones((5, 5), np.float32)/25 dst = cv.filter2D(img, -1, kernel) plt.subplot(121), plt.imshow(img), plt.title('Original') plt.xticks([]), plt.yticks([]) plt.subplot(122), plt.imshow(dst), plt.title('Averaging') plt.xticks([]), plt.yticks([]) plt.show()


    銳化

    import cv2 as cv import numpy as npdef custom_blur_demo(image):kernel = np.array([[0, -1, 0], [-1, 5, -1], [0, -1, 0]], np.float32) # 銳化dst = cv.filter2D(image, -1, kernel=kernel)cv.imshow("custom_blur_demo", dst)src = cv.imread("./image/sharpen.png") cv.namedWindow("input image", cv.WINDOW_AUTOSIZE) cv.imshow("input image", src) custom_blur_demo(src) cv.waitKey(0) cv.destroyAllWindows()


    ps:卷積核像上面那樣設(shè)置就可以進(jìn)行一定的銳化處理,即圖像看起來(lái)更清晰。

    3.2 非線性濾波

    非線性濾波不像線性濾波那樣,是一個(gè)和卷積核對(duì)應(yīng)位相乘后相加的線性運(yùn)算,這里介紹中值濾波核雙邊濾波。

    3.2.1 中值濾波

    中值濾波是用像素點(diǎn)鄰域灰度值的中值代替該點(diǎn)的灰度值,中值濾波可以去除椒鹽噪聲斑點(diǎn)噪聲

    函數(shù):

    dst = cv2.medianBlur( src, ksize[, dst] )

    參數(shù):

  • src:輸入圖像。
  • ksize:核的大小,這里不再是卷積核,而只是取中值的一個(gè)范圍。
  • 看個(gè)例子:

    import cv2 as cv import numpy as np from matplotlib import pyplot as plt img = cv.imread('image/median.png') median = cv.medianBlur(img, 7)plt.subplot(121), plt.imshow(img), plt.title('Original') plt.xticks([]), plt.yticks([]) plt.subplot(122), plt.imshow(median), plt.title('median') plt.xticks([]), plt.yticks([]) plt.show()

    輸出結(jié)果為:

    3.2.2 雙邊濾波

    雙邊濾波是結(jié)合圖像的空間鄰近度和像素值相似度的一種折中處理,同時(shí)考慮空間與信息和灰度相似性,達(dá)到保邊去噪的目的,具有簡(jiǎn)單、非迭代和局部處理的特點(diǎn)。

    雙邊濾波在去噪的同時(shí)能較好的保留邊緣信息。但與其他濾波器相比,速度較慢。高斯濾波器取像素周圍的一個(gè)鄰域并找到它的高斯加權(quán)平均值。這種高斯濾波器是空間的函數(shù),也就是說(shuō),濾波時(shí)考慮了附近的像素,但它不考慮像素是否具有幾乎相同的強(qiáng)度。它不考慮像素是否是邊緣像素。所以它也模糊了邊緣,這是不太好的。

    雙邊濾波器在空間上也采用高斯濾波器,但多了一個(gè)高斯濾波器,它是像素差的函數(shù)。空間高斯函數(shù)只考慮相鄰像素的模糊,而灰度差的高斯函數(shù)則只考慮與中心像素亮度相近的像素進(jìn)行模糊處理。所以它保留了邊緣,因?yàn)檫吘壍南袼貢?huì)有很大的強(qiáng)度變化。

    函數(shù):

    dst = cv2.bilateralFilter( src, d, sigmaColor, sigmaSpace[, dst[, borderType]] )

    參數(shù)如下所示:

  • src:輸入圖像。
  • d:像素的鄰域直徑,若為非正數(shù)則通過(guò)sigma計(jì)算得到。
  • sigmaColor:灰度相似性高斯函數(shù)標(biāo)準(zhǔn)差。
  • sigmaSpace:空間高斯函數(shù)標(biāo)準(zhǔn)差。
  • 看個(gè)例子:

    import cv2 from matplotlib import pyplot as plt img = cv2.imread('image/bilateral.png') img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) blur = cv2.bilateralFilter(img, -1, 15, 10) plt.subplot(121), plt.imshow(img), plt.title('Original') plt.xticks([]), plt.yticks([]) plt.subplot(122), plt.imshow(blur), plt.title('Blurred') plt.xticks([]), plt.yticks([]) plt.show()

    輸出結(jié)果如下圖所示:

    邊緣信息保留的還可以。

    3.3 圖像直方圖均衡化

    3.3.1 單通道圖像全局均衡化

    目的:直方圖均衡化是將原圖像通過(guò)某種變換,得到一幅灰度直方圖為均勻分布的新圖像的方法。

    基本思想:對(duì)在圖像中像素個(gè)數(shù)多的灰度級(jí)進(jìn)行展寬,而對(duì)像素個(gè)數(shù)少的灰度級(jí)進(jìn)行縮減。從而達(dá)到清晰圖像(增強(qiáng)對(duì)比度)的目的

    考慮一個(gè)圖像,其像素值僅限于某些特定的值范圍內(nèi)。例如,較亮的圖像將所有像素限制為高值。但是一個(gè)好的圖像會(huì)有來(lái)自圖像所有區(qū)域的像素。所以你需要將這個(gè)直方圖拉伸到兩端(如下圖所示,來(lái)自維基百科),這就是直方圖均衡化的作用(簡(jiǎn)單地說(shuō))。這通常會(huì)提高圖像的對(duì)比度。更詳細(xì)的解釋可以參考官方文檔的內(nèi)容講解:https://docs.opencv.org/4.1.2/d5/daf/tutorial_py_histogram_equalization.html

    (橫坐標(biāo)為像素值,縱坐標(biāo)為該像素值對(duì)應(yīng)的像素的個(gè)數(shù))

    函數(shù):

    dst = cv2.equalizeHist( src[, dst] )

    參數(shù):

  • src:輸入的8bit單通道圖像。
  • 作用是均衡化一張灰度圖的像素值。具體的實(shí)現(xiàn)步驟是:

  • 統(tǒng)計(jì)直方圖中每個(gè)灰度值出現(xiàn)的次數(shù);
  • 計(jì)算累計(jì)歸一化直方圖;
  • 重新計(jì)算像素點(diǎn)的像素值。

  • 來(lái)看個(gè)例子:

    # 導(dǎo)入opencv import cv2 # 直接讀為灰度圖像 img = cv2.imread('./image/dark.png', 0) cv2.imshow("dark", img) cv2.waitKey(0) # 調(diào)用cv2.equalizeHist函數(shù)進(jìn)行直方圖均衡化 img_equal = cv2.equalizeHist(img)cv2.imshow("img_equal", img_equal) cv2.waitKey(0) cv2.destroyAllWindows()

    效果如下圖所示:

    原圖是一張整體偏暗的圖片,直方圖均衡化之后對(duì)比度得到了提高,變得更清晰明亮了一些;如果原圖是一張過(guò)亮的圖片,那么均衡化會(huì)讓它更暗一些。

    3.3.2 三通道圖像全局均衡化

    基本思想是先將三通道分離,對(duì)三個(gè)通道分別進(jìn)行全局均衡化,然后將均衡化之后的結(jié)果再合并通道,恢復(fù)成彩色圖像,下面看個(gè)例子:

    import cv2 import numpy as np img = cv2.imread("./image/dark1.jpg") # print(img.shape) cv2.imshow("src", img) # 彩色圖像均衡化,需要分解通道 對(duì)每一個(gè)通道均衡化 (b, g, r) = cv2.split(img) bH = cv2.equalizeHist(b) gH = cv2.equalizeHist(g) rH = cv2.equalizeHist(r) # 合并每一個(gè)通道 result = cv2.merge((bH, gH, rH)) cv2.imshow("dst", result) cv2.waitKey(0) cv2.destroyAllWindows()

    輸出結(jié)果如下所示(右邊少截了一點(diǎn)):

    3.3.3 局部均衡化/對(duì)比度限制自適應(yīng)直方圖均衡化(CLAHE)

    我們剛剛看到的全局直方圖均衡化考慮了圖像的全局對(duì)比度。在許多情況下,這不是一個(gè)好主意。例如,下圖顯示了輸入圖像及其全局直方圖均衡化后的結(jié)果:

    直方圖均衡化后,背景對(duì)比度確實(shí)有所改善。但是比較兩幅圖像中雕像的臉。由于亮度過(guò)高,我們丟失了那里的大部分信息。這是因?yàn)樗闹狈綀D并不像我們?cè)谇懊娴睦又兴吹降哪菢泳窒抻谝粋€(gè)特定的區(qū)域(試著繪制輸入圖像的直方圖,你會(huì)得到更多的直覺(jué))。

    為了解決這一問(wèn)題,可以采用自適應(yīng)直方圖均衡化方法。在這種情況下,圖像被分成稱為“tiles”的小塊(OpenCV中,tileSize默認(rèn)為8x8)。然后這些塊中的每一塊都像往常一樣被直方圖均衡化。所以在一個(gè)很小的區(qū)域內(nèi),直方圖會(huì)局限在一個(gè)很小的區(qū)域內(nèi)(除非有噪聲)。如果有噪音,就會(huì)被放大。為了避免這種情況,應(yīng)用對(duì)比度限制。如果任何直方圖單元高于指定的對(duì)比度限制(OpenCV中默認(rèn)為40),則在應(yīng)用直方圖均衡化之前,這些像素將被剪裁并均勻分布到其他單元。在均衡后,為了去除瓷磚邊緣的偽影,采用雙線性插值。

    OpenCV中這種均衡化對(duì)應(yīng)的函數(shù)為:

    retval = cv2.createCLAHE( [, clipLimit[, tileGridSize]] )

    參數(shù)只有兩個(gè):

  • clipLimit:對(duì)比度限制的閾值;
  • tileGridSize:局部直方圖均衡化的網(wǎng)格尺寸,輸入圖像將被分成這么大的矩形小塊分別均衡化。
  • 看一下實(shí)現(xiàn)的代碼:

    import numpy as np import cv2 as cv img = cv.imread('tsukuba_l.png', 0) # create a CLAHE object (Arguments are optional). clahe = cv.createCLAHE(clipLimit=2.0, tileGridSize=(8,8)) cl1 = clahe.apply(img) cv.imwrite('clahe_2.jpg',cl1)

    參見下面的結(jié)果,并將其與上面的結(jié)果進(jìn)行比較,尤其是雕像區(qū)域:

    增強(qiáng)圖像中的有用信息,它可以是一個(gè)失真的過(guò)程,其目的是要改善圖像的視覺(jué)效果,針對(duì)給定圖像的應(yīng)用場(chǎng)合。

    3.4 Gamma變換

    Gamma變換是對(duì)輸入圖像灰度值進(jìn)行的非線性操作,使輸出圖像灰度值與輸入圖像灰度值呈指數(shù)關(guān)系:


    目的:Gamma變換就是用來(lái)圖像增強(qiáng),其提升了暗部細(xì)節(jié),通過(guò)非線性變換,讓圖像從曝光強(qiáng)度的線性響應(yīng)變得更接近人眼感受的響應(yīng),即將漂白(相機(jī)曝光)或過(guò)暗(曝光不足)的圖片,進(jìn)行矯正。

    看一個(gè)例子:

    import cv2 import numpy as np img=cv2.imread('./image/dark1.jpg') def adjust_gamma(image, gamma=1.0):invGamma = 1.0/gammatable = []for i in range(256):table.append(((i / 255.0) ** invGamma) * 255)table = np.array(table).astype("uint8")print(table)return cv2.LUT(image, table)img_gamma = adjust_gamma(img, 2.0) print(img_gamma) cv2.imshow("img",img) cv2.imshow("img_gamma",img_gamma)cv2.waitKey(0) cv2.destroyAllWindows()

    先構(gòu)建一個(gè)gamma變換的表table,即0-255變換后變?yōu)槎嗌?#xff0c;然后對(duì)圖像上的每個(gè)像素進(jìn)行一個(gè)查表操作,原像素值查表得到變換后的像素值,即cv2.LUT函數(shù)的作用,返回的就是gamma變換之后的圖像,結(jié)果如下所示:

    [ 0 15 22 27 31 35 39 42 45 47 50 52 55 57 59 61 63 6567 69 71 73 74 76 78 79 81 82 84 85 87 88 90 91 93 9495 97 98 99 100 102 103 104 105 107 108 109 110 111 112 114 115 116117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134135 136 137 138 139 140 141 141 142 143 144 145 146 147 148 148 149 150151 152 153 153 154 155 156 157 158 158 159 160 161 162 162 163 164 165165 166 167 168 168 169 170 171 171 172 173 174 174 175 176 177 177 178179 179 180 181 182 182 183 184 184 185 186 186 187 188 188 189 190 190191 192 192 193 194 194 195 196 196 197 198 198 199 200 200 201 201 202203 203 204 205 205 206 206 207 208 208 209 210 210 211 211 212 213 213214 214 215 216 216 217 217 218 218 219 220 220 221 221 222 222 223 224224 225 225 226 226 227 228 228 229 229 230 230 231 231 232 233 233 234234 235 235 236 236 237 237 238 238 239 240 240 241 241 242 242 243 243244 244 245 245 246 246 247 247 248 248 249 249 250 250 251 251 252 252253 253 254 255]


    若將gamma參數(shù)改為小于1的數(shù),如0.8,則結(jié)果為:

    [ 0 0 0 0 1 1 2 2 3 3 4 5 5 6 6 7 8 89 9 10 11 11 12 13 13 14 15 16 16 17 18 19 19 20 2122 22 23 24 25 25 26 27 28 29 29 30 31 32 33 34 34 3536 37 38 39 40 40 41 42 43 44 45 46 47 47 48 49 50 5152 53 54 55 56 57 58 58 59 60 61 62 63 64 65 66 67 6869 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 8687 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104105 106 107 108 109 110 111 113 114 115 116 117 118 119 120 121 122 123124 125 127 128 129 130 131 132 133 134 135 136 137 139 140 141 142 143144 145 146 147 149 150 151 152 153 154 155 157 158 159 160 161 162 163164 166 167 168 169 170 171 173 174 175 176 177 178 180 181 182 183 184185 187 188 189 190 191 192 194 195 196 197 198 200 201 202 203 204 206207 208 209 210 212 213 214 215 216 218 219 220 221 222 224 225 226 227229 230 231 232 233 235 236 237 238 240 241 242 243 245 246 247 248 250251 252 253 255]


    可以通過(guò)比較兩個(gè)gamma變換的表看出區(qū)別,前者是將值普遍變大,所以圖會(huì)變亮,后者是普遍變小,所以變暗。

    總結(jié)

    以上是生活随笔為你收集整理的OpenCV与图像处理学习五——图像滤波与增强:线性、非线性滤波、直方图均衡化与Gamma变换的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。