PIL有如下幾個模塊:Image模塊、ImageChops模塊、ImageCrackCode模塊、ImageDraw模塊、ImageEnhance模塊、ImageFile模塊、ImageFileIO模塊、ImageFilter模塊、ImageFont模塊、ImageGrab模塊、ImageOps模塊、ImagePath模塊、ImageSequence模塊、ImageStat模塊、ImageTk模塊、ImageWin模塊、PSDraw模塊
創(chuàng)新互聯(lián)公司專注于市北網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供市北營銷型網(wǎng)站建設(shè),市北網(wǎng)站制作、市北網(wǎng)頁設(shè)計、市北網(wǎng)站官網(wǎng)定制、微信小程序定制開發(fā)服務(wù),打造市北網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供市北網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
啊啊啊啊怎么這么多模塊啊~~~?。。。?/p>
別擔(dān)心我為你一一講解
Image模塊提供了一個相同名稱的類,即image類,用于表示PIL圖像。
Image模塊是PIL中最重要的模塊 ,比如創(chuàng)建、打開、顯示、保存圖像等功能,合成、裁剪、濾波等功能,獲取圖像屬性功能,如圖像直方圖、通道數(shù)等。
Image模塊的使用如下:
ImageChops模塊包含一些算術(shù)圖形操作,這些操作可用于諸多目的,比如圖像特效,圖像組合,算法繪圖等等,通道操作只用于8位圖像。
ImageChops模塊的使用如下:
由于圖像im_dup是im的復(fù)制過來的,所以它們的差為0,圖像im_diff顯示時為黑圖。
ImageCrackCode模塊允許用戶檢測和測量圖像的各種特性。 這個模塊只存在于PIL Plus包中。
因為我目前安裝的PIL中沒有包含這個模塊。所以就不詳細介紹了
ImageDraw模塊為image對象提供了基本的圖形處理功能。 例如,它可以創(chuàng)建新圖像,注釋或潤飾已存在圖像,為web應(yīng)用實時產(chǎn)生各種圖形。
ImageDraw模塊的使用如下:
在del draw前后顯示出來的圖像im是完全一樣的,都是在原有圖像上畫了兩條對角線。
原諒我的報錯
ImageEnhance模塊包括一些用于圖像增強的類。它們分別為 Color類、Brightness類、Contrast類和Sharpness類。
ImageEnhance模塊的使用如下:
圖像im0的亮度為圖像im的一半。
ImageFile模塊為圖像打開和保存功能提供了相關(guān)支持功能。另外,它提供了一個Parser類,這個類可以一塊一塊地對一張圖像進行解碼(例如,網(wǎng)絡(luò)聯(lián)接中接收一張圖像)。這個類的接口與標(biāo)準(zhǔn)的sgmllib和xmllib模塊的接口一樣。
ImageFile模塊的使用如下:
因為所打開圖像大小大于1024個byte,所以報錯:圖像不完整。
所以大家想看的可以自行去找一個小一點的圖看一下
ImageFileIO模塊用于從一個socket或者其他流設(shè)備中讀取一張圖像。 不贊成使用這個模塊。 在新的code中將使用ImageFile模塊的Parser類來代替它。
ImageFilter模塊包括各種濾波器的預(yù)定義集合,與Image類的filter方法一起使用。該模塊包含這些圖像增強的濾器:BLUR,CONTOUR,DETAIL,EDGE_ENHANCE,EDGE_ENHANCE_MORE,EMBOSS,F(xiàn)IND_EDGES,SMOOTH,SMOOTH_MORE和SHARPEN。
ImageFilter模塊的使用如下:
ImageFont模塊定義了一個同名的類,即ImageFont類。這個類的實例中存儲著bitmap字體,需要與ImageDraw類的text方法一起使用。
PIL使用自己的字體文件格式存儲bitmap字體。用戶可以使用pilfont工具包將BDF和PCF字體描述器(Xwindow字體格式)轉(zhuǎn)換為這種格式。
PIL Plus包中才會支持矢量字體。
ImageGrab模塊用于將屏幕上的內(nèi)容拷貝到一個PIL圖像內(nèi)存中。 當(dāng)前的版本只在windows操作系統(tǒng)上可以工作。
ImageGrab模塊的使用如下:
圖像im顯示出筆記本當(dāng)前的窗口內(nèi)容,就是類似于截圖的工具
ImageOps模塊包括一些“ready-made”圖像處理操作。 它可以完成直方圖均衡、裁剪、量化、鏡像等操作 。大多數(shù)操作只工作在L和RGB圖像上。
ImageOps模塊的使用如下:
圖像im_flip為圖像im垂直方向的鏡像。
ImagePath模塊用于存儲和操作二維向量數(shù)據(jù)。Path對象將被傳遞到ImageDraw模塊的方法中。
ImagePath模塊的使用如下:
ImageSequence模塊包括一個wrapper類,它為圖像序列中每一幀提供了迭代器。
ImageSequence模塊的使用如下:
后面兩次show()函數(shù)調(diào)用,分別顯示第1張和第11張圖像。
ImageStat模塊計算一張圖像或者一張圖像的一個區(qū)域的全局統(tǒng)計值。
ImageStat模塊的使用如下:
ImageTk模塊用于創(chuàng)建和修改BitmapImage和PhotoImage對象中的Tkinter。
ImageTk模塊的使用如下:
這個是我一直不太懂的有沒有大佬能幫我解決一下在線等~急!
PSDraw模塊為Postscript打印機提供基本的打印支持。用戶可以通過這個模塊打印字體,圖形和圖像。
PIL中所涉及的基本概念有如下幾個: 通道(bands)、模式(mode)、尺寸(size)、坐標(biāo)系統(tǒng)(coordinate system)、調(diào)色板(palette)、信息(info)和濾波器(filters)。
每張圖片都是由一個或者多個數(shù)據(jù)通道構(gòu)成。PIL允許在單張圖片中合成相同維數(shù)和深度的多個通道。
以RGB圖像為例,每張圖片都是由三個數(shù)據(jù)通道構(gòu)成,分別為R、G和B通道。而對于灰度圖像,則只有一個通道。
對于一張圖片的通道數(shù)量和名稱,可以通過getbands()方法來獲取。getbands()方法是Image模塊的方法,它會返回一個字符串元組(tuple)。該元組將包括每一個通道的名稱。
Python的元組與列表類似,不同之處在于元組的元素不能修改,元組使用小括號,列表使用方括號,元組創(chuàng)建很簡單,只需要在括號中添加元素,并使用逗號隔開即可。
getbands()方法的使用如下:
圖像的模式定義了圖像的類型和像素的位寬。當(dāng)前支持如下模式:
1:1位像素,表示黑和白,但是存儲的時候每個像素存儲為8bit。
L:8位像素,表示黑和白。
P:8位像素,使用調(diào)色板映射到其他模式。
I:32位整型像素。
F:32位浮點型像素。
RGB:3x8位像素,為真彩色。
RGBA:4x8位像素,有透明通道的真彩色。
CMYK:4x8位像素,顏色分離。
YCbCr:3x8位像素,彩色視頻格式。
PIL也支持一些特殊的模式,包括RGBX(有padding的真彩色)和RGBa(有自左乘alpha的真彩色)。
可以通過mode屬性讀取圖像的模式。其返回值是包括上述模式的字符串。
mode 屬性 的使用如下:
通過size屬性可以獲取圖片的尺寸。這是一個二元組,包含水平和垂直方向上的像素數(shù)。
mode屬性的使用如下:
PIL使用笛卡爾像素坐標(biāo)系統(tǒng),坐標(biāo)(0,0)位于左上角。注意:坐標(biāo)值表示像素的角;位于坐標(biāo)(0,0)處的像素的中心實際上位于(0.5,0.5)。
坐標(biāo)經(jīng)常用于二元組(x,y)。長方形則表示為四元組,前面是左上角坐標(biāo)。例如:一個覆蓋800x600的像素圖像的長方形表示為(0,0,800,600)。
調(diào)色板模式 ("P")使用一個顏色調(diào)色板為每個像素定義具體的顏色值
使用info屬性可以為一張圖片添加一些輔助信息。這個是字典對象。加載和保存圖像文件時,多少信息需要處理取決于文件格式。
info屬性的使用如下:
對于將多個輸入像素映射為一個輸出像素的幾何操作,PIL提供了4個不同的采樣濾波器:
NEAREST:最近濾波。 從輸入圖像中選取最近的像素作為輸出像素。它忽略了所有其他的像素。
BILINEAR:雙線性濾波。 在輸入圖像的2x2矩陣上進行線性插值。注意:PIL的當(dāng)前版本,做下采樣時該濾波器使用了固定輸入模板。
BICUBIC:雙立方濾波。 在輸入圖像的4x4矩陣上進行立方插值。注意:PIL的當(dāng)前版本,做下采樣時該濾波器使用了固定輸入模板。
ANTIALIAS:平滑濾波。 這是PIL 1.1.3版本中新的濾波器。對所有可以影響輸出像素的輸入像素進行高質(zhì)量的重采樣濾波,以計算輸出像素值。在當(dāng)前的PIL版本中,這個濾波器只用于改變尺寸和縮略圖方法。
注意:在當(dāng)前的PIL版本中,ANTIALIAS濾波器是下采樣 (例如,將一個大的圖像轉(zhuǎn)換為小圖) 時唯一正確的濾波器。 BILIEAR和BICUBIC濾波器使用固定的輸入模板 ,用于固定比例的幾何變換和上采樣是最好的。Image模塊中的方法resize()和thumbnail()用到了濾波器。
resize()方法的定義為:resize(size, filter=None)= image
resize()方法的使用如下:
對參數(shù)filter不賦值的話,resize()方法默認使用NEAREST濾波器。如果要使用其他濾波器可以通過下面的方法來實現(xiàn):
thumbnail ()方法的定義為:im.thumbnail(size, filter=None)
thumbnail ()方法的使用如下:
這里需要說明的是,方法thumbnail()需要保持寬高比,對于size=(200,200)的輸入?yún)?shù),其最終的縮略圖尺寸為(182, 200)。
對參數(shù)filter不賦值的話,方法thumbnail()默認使用NEAREST濾波器。如果要使用其他濾波器可以通過下面的方法來實現(xiàn):
學(xué)習(xí)目標(biāo):
OpenCV 中有 150 多種色彩空間轉(zhuǎn)化的方法,這里只討論兩種:
HSV的色相范圍為[0,179],飽和度范圍為[0,255],值范圍為[0,255]。不同的軟件使用不同的規(guī)模。如果要比較 OpenCV 值和它們,你需要標(biāo)準(zhǔn)化這些范圍。
HSV 和 HLV 解釋
運行結(jié)果:該段程序的作用是檢測藍色目標(biāo),同理可以檢測其他顏色的目標(biāo)
結(jié)果中存在一定的噪音,之后的章節(jié)將會去掉它
這是物體跟蹤中最簡單的方法。一旦你學(xué)會了等高線的函數(shù),你可以做很多事情,比如找到這個物體的質(zhì)心,用它來跟蹤這個物體,僅僅通過在相機前移動你的手來畫圖表,還有很多其他有趣的事情。
菜鳥教程 在線 HSV- BGR 轉(zhuǎn)換
比如要找出綠色的 HSV 值,可以使用上面的程序,得到的值取一個上下界。如上面的取下界 [H-10, 100, 100],上界 [H+10, 255, 255]
或者使用其他工具如 GIMP
學(xué)習(xí)目標(biāo):
對圖像進行閾值處理,算是一種最簡單的圖像分割方法,基于圖像與背景之間的灰度差異,此項分割是基于像素級的分割
threshold(src, thresh, maxval, type[, dst]) - retval, dst
計算圖像小區(qū)域的閾值。所以我們對同一幅圖像的不同區(qū)域得到不同的閾值,這給我們在不同光照下的圖像提供了更好的結(jié)果。
三個特殊的輸入?yún)?shù)和一個輸出參數(shù)
adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C[, dst]) - dst
opencv-threshold-python
OpenCV 圖片集
本節(jié)原文
學(xué)習(xí)目標(biāo):
OpenCV 提供兩種變換函數(shù): cv2.warpAffine 和 cv2.warpPerspective
cv2.resize() 完成縮放
文檔說明
運行結(jié)果
說明 : cv2.INTER_LINEAR 方法比 cv2.INTER_CUBIC 還慢,好像與官方文檔說的不一致? 有待驗證。
速度比較: INTER_CUBIC INTER_NEAREST INTER_LINEAR INTER_AREA INTER_LANCZOS4
改變圖像的位置,創(chuàng)建一個 np.float32 類型的變換矩陣,
warpAffine(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]]) - dst
運行結(jié)果:
旋轉(zhuǎn)角度( )是通過一個變換矩陣變換的:
OpenCV 提供的是可調(diào)旋轉(zhuǎn)中心的縮放旋轉(zhuǎn),這樣你可以在任何你喜歡的位置旋轉(zhuǎn)。修正后的變換矩陣為
這里
OpenCV 提供了 cv2.getRotationMatrix2D 控制
cv2.getRotationMatrix2D(center, angle, scale) → retval
運行結(jié)果
cv2.getAffineTransform(src, dst) → retval
函數(shù)關(guān)系:
\begin{bmatrix} x'_i \ y'_i \end{bmatrix}\begin{bmatrix} x'_i \ y'_i \end{bmatrix} =
其中
運行結(jié)果:圖上的點便于觀察,兩圖中的紅點是相互對應(yīng)的
透視變換需要一個 3x3 變換矩陣。轉(zhuǎn)換之后直線仍然保持筆直,要找到這個變換矩陣,需要輸入圖像上的 4 個點和輸出圖像上的對應(yīng)點。在這 4 個點中,有 3 個不應(yīng)該共線。通過 cv2.getPerspectiveTransform 計算得到變換矩陣,得到的矩陣 cv2.warpPerspective 變換得到最終結(jié)果。
本節(jié)原文
平滑處理(smoothing)也稱模糊處理(bluring),是一種簡單且使用頻率很高的圖像處理方法。平滑處理的用途:常見是用來 減少圖像上的噪點或失真 。在涉及到降低圖像分辨率時,平滑處理是很好用的方法。
圖像濾波:盡量保留圖像細節(jié)特征的條件下對目標(biāo)圖像的噪聲進行抑制,其處理效果的好壞將直接影響到后續(xù)圖像處理和分析的有效性和可靠性。
消除圖像中的噪聲成分叫做圖像的平滑化或濾波操作。信號或圖像的能量大部分集中在幅度譜的低頻和中頻段,在高頻段,有用的信息會被噪聲淹沒。因此一個能降低高頻成分幅度的濾波器就能夠減弱噪聲的影響。
濾波的目的:抽出對象的特征作為圖像識別的特征模式;為適應(yīng)圖像處理的要求,消除圖像數(shù)字化時混入的噪聲。
濾波處理的要求:不能損壞圖像的輪廓及邊緣等重要信息;圖像清晰視覺效果好。
平滑濾波是低頻增強的空間濾波技術(shù),目的:模糊和消除噪音。
空間域的平滑濾波一般采用簡單平均法,即求鄰近像元點的平均亮度值。鄰域的大小與平滑的效果直接相關(guān),鄰域越大平滑效果越好,但是鄰域過大,平滑也會使邊緣信息的損失的越大,從而使輸出圖像變得模糊。因此需要選擇合適的鄰域。
濾波器:一個包含加權(quán)系數(shù)的窗口,利用濾波器平滑處理圖像時,把這個窗口放在圖像上,透過這個窗口來看我們得到的圖像。
線性濾波器:用于剔除輸入信號中不想要的頻率或者從許多頻率中選擇一個想要的頻率。
低通濾波器、高通濾波器、帶通濾波器、帶阻濾波器、全通濾波器、陷波濾波器
boxFilter(src, ddepth, ksize[, dst[, anchor[, normalize[, borderType]]]]) - dst
均值濾波是方框濾波歸一化后的特殊情況。歸一化就是要把處理的量縮放到一個范圍內(nèi)如 (0,1),以便統(tǒng)一處理和直觀量化。非歸一化的方框濾波用于計算每個像素鄰近內(nèi)的積分特性,比如密集光流算法中用到的圖像倒數(shù)的協(xié)方差矩陣。
運行結(jié)果:
均值濾波是典型的線性濾波算法,主要方法為鄰域平均法,即用一片圖像區(qū)域的各個像素的均值來代替原圖像中的各個像素值。一般需要在圖像上對目標(biāo)像素給出一個模板(內(nèi)核),該模板包括了其周圍的臨近像素(比如以目標(biāo)像素為中心的周圍8(3x3-1)個像素,構(gòu)成一個濾波模板,即 去掉目標(biāo)像素本身 )。再用模板中的全體像素的平均值來代替原來像素值。即對待處理的當(dāng)前像素點(x,y),選擇一個模板,該模板由其近鄰的若干像素組成,求模板中所有像素的均值,再把該均值賦予當(dāng)前像素點(x,y),作為處理后圖像在該點上的灰度個g(x,y),即個g(x,y)=1/m ∑f(x,y) ,其中m為該模板中包含當(dāng)前像素在內(nèi)的像素總個數(shù)。
均值濾波本身存在著固有的缺陷,即它不能很好地保護圖像細節(jié),在圖像去噪的同時也破壞了圖像的細節(jié)部分,從而使圖像變得模糊,不能很好地去除噪聲點。
cv2.blur(src, ksize[, dst[, anchor[, borderType]]]) → dst
結(jié)果:
高斯濾波:線性濾波,可以消除高斯噪聲,廣泛應(yīng)用于圖像處理的減噪過程。高斯濾波就是對整幅圖像進行加權(quán)平均的過程,每一個像素點的值,都由其本身和鄰域內(nèi)的其他像素值經(jīng)過 加權(quán)平均 后得到。高斯濾波的具體操作是:用一個模板(或稱卷積、掩模)掃描圖像中的每一個像素,用模板確定的鄰域內(nèi)像素的加權(quán)平均灰度值去替代模板中心像素點的值。
高斯濾波有用但是效率不高。
高斯模糊技術(shù)生成的圖像,其視覺效果就像是經(jīng)過一個半透明屏幕在觀察圖像,這與鏡頭焦外成像效果散景以及普通照明陰影中的效果都明顯不同。高斯平滑也用于計算機視覺算法中的預(yù)先處理階段,以增強圖像在不同比例大小下的圖像效果(參見尺度空間表示以及尺度空間實現(xiàn))。從數(shù)學(xué)的角度來看,圖像的高斯模糊過程就是圖像與正態(tài)分布做卷積。由于正態(tài)分布又叫作高斯分布,所以這項技術(shù)就叫作高斯模糊。
高斯濾波器是一類根據(jù)高斯函數(shù)的形狀來選擇權(quán)值的線性平滑濾波器。 高斯平滑濾波器對于抑制服從正態(tài)分布的噪聲非常有效。
一維零均值高斯函數(shù)為: 高斯分布參數(shù) 決定了高斯函數(shù)的寬度。
高斯噪聲的產(chǎn)生
GaussianBlur(src, ksize, sigmaX[, dst[, sigmaY[, borderType]]]) - dst
線性濾波容易構(gòu)造,并且易于從頻率響應(yīng)的角度來進行分析。
許多情況,使用近鄰像素的非線性濾波會得到更好的結(jié)果。比如在噪聲是散粒噪聲而不是高斯噪聲,即圖像偶爾會出現(xiàn)很大值的時候,用高斯濾波器進行圖像模糊時,噪聲像素不會被消除,而是轉(zhuǎn)化為更為柔和但仍然可見的散粒。
中值濾波(Median filter)是一種典型的非線性濾波技術(shù),基本思想是用像素點鄰域灰度值的中值來代替該像素點的灰度值,該方法在去除脈沖噪聲、椒鹽噪聲『椒鹽噪聲又稱脈沖噪聲,它隨機改變一些像素值,是由圖像傳感器,傳輸信道,解碼處理等產(chǎn)生的黑白相間的亮暗點噪聲。椒鹽噪聲往往由圖像切割引起?!坏耐瑫r又能保留圖像邊緣細節(jié),
中值濾波是基于排序統(tǒng)計理論的一種能有效抑制噪聲的非線性信號處理技術(shù),其基本原理是把數(shù)字圖像或數(shù)字序列中一點的值用該點的一個鄰域中各點值的中值代替,讓周圍的像素值接近的真實值,從而消除孤立的噪聲點,對于 斑點噪聲(speckle noise)和椒鹽噪聲(salt-and-pepper noise) 來說尤其有用,因為它不依賴于鄰域內(nèi)那些與典型值差別很大的值。中值濾波器在處理連續(xù)圖像窗函數(shù)時與線性濾波器的工作方式類似,但濾波過程卻不再是加權(quán)運算。
中值濾波在一定的條件下可以克服常見線性濾波器如最小均方濾波、方框濾波器、均值濾波等帶來的圖像細節(jié)模糊,而且對濾除脈沖干擾及圖像掃描噪聲非常有效,也常用于保護邊緣信息, 保存邊緣的特性使它在不希望出現(xiàn)邊緣模糊的場合也很有用,是非常經(jīng)典的平滑噪聲處理方法。
與均值濾波比較:
說明:中值濾波在一定條件下,可以克服線性濾波器(如均值濾波等)所帶來的圖像細節(jié)模糊,而且對濾除脈沖干擾即圖像掃描噪聲最為有效。在實際運算過程中并不需要圖像的統(tǒng)計特性,也給計算帶來不少方便。 但是對一些細節(jié)多,特別是線、尖頂?shù)燃毠?jié)多的圖像不宜采用中值濾波。
雙邊濾波(Bilateral filter)是一種非線性的濾波方法,是結(jié)合 圖像的空間鄰近度和像素值相似度 的一種折衷處理,同時考慮空域信息和灰度相似性,達到保邊去噪的目的。具有簡單、非迭代、局部的特點。
雙邊濾波器的好處是可以做邊緣保存(edge preserving),一般過去用的維納濾波或者高斯濾波去降噪,都會較明顯地模糊邊緣,對于高頻細節(jié)的保護效果并不明顯。雙邊濾波器顧名思義比高斯濾波多了一個高斯方差 sigma-d ,它是基于空間分布的高斯濾波函數(shù),所以在邊緣附近,離的較遠的像素不會太多影響到邊緣上的像素值,這樣就保證了邊緣附近像素值的保存。 但是由于保存了過多的高頻信息,對于彩色圖像里的高頻噪聲,雙邊濾波器不能夠干凈的濾掉,只能夠?qū)τ诘皖l信息進行較好的濾波。
運行結(jié)果
學(xué)習(xí)目標(biāo):
形態(tài)變換是基于圖像形狀的一些簡單操作。它通常在二進制圖像上執(zhí)行。
膨脹與腐蝕實現(xiàn)的功能
侵蝕的基本思想就像土壤侵蝕一樣,它會侵蝕前景物體的邊界(總是試圖保持前景為白色)。那它是做什么的?內(nèi)核在圖像中滑動(如在2D卷積中)。只有當(dāng)內(nèi)核下的所有像素都是 1 時,原始圖像中的像素( 1 或 0 )才會被視為 1 ,否則它將被侵蝕(變?yōu)榱悖?/p>
erode(src, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]]) - dst
與腐蝕的操作相反。如果內(nèi)核下的至少一個像素為“1”,則像素元素為“1”。因此它增加了圖像中的白色區(qū)域或前景對象的大小增加。通常,在去除噪音的情況下,侵蝕之后是擴張。因為,侵蝕會消除白噪聲,但它也會縮小我們的物體。所以我們擴大它。由于噪音消失了,它們不會再回來,但我們的物體區(qū)域會增加。它也可用于連接對象的破碎部分
borderType= None)函數(shù)
此函數(shù)利用高斯濾波器平滑一張圖像。該函數(shù)將源圖像與指定的高斯核進行卷積。
src:輸入圖像
ksize:(核的寬度,核的高度),輸入高斯核的尺寸,核的寬高都必須是正奇數(shù)。否則,將會從參數(shù)sigma中計算得到。
dst:輸出圖像,尺寸與輸入圖像一致。
sigmaX:高斯核在X方向上的標(biāo)準(zhǔn)差。
sigmaY:高斯核在Y方向上的標(biāo)準(zhǔn)差。默認為None,如果sigmaY=0,則它將被設(shè)置為與sigmaX相等的值。如果這兩者都為0,則它們的值會從ksize中計算得到。計算公式為:
borderType:像素外推法,默認為None(參考官方文檔 BorderTypes
)
在圖像處理中,高斯濾波主要有兩種方式:
1.窗口滑動卷積
2.傅里葉變換
在此主要利用窗口滑動卷積。其中二維高斯函數(shù)公式為:
根據(jù)上述公式,生成一個3x3的高斯核,其中最重要的參數(shù)就是標(biāo)準(zhǔn)差 ,標(biāo)準(zhǔn)差 越大,核中心的值與周圍的值差距越小,曲線越平滑。標(biāo)準(zhǔn)差 越小,核中心的值與周圍的值差距越大,曲線越陡峭。
從圖像的角度來說,高斯核的標(biāo)準(zhǔn)差 越大,平滑效果越不明顯。高斯核的標(biāo)準(zhǔn)差 越小,平滑效果越明顯。
可見,標(biāo)準(zhǔn)差 越大,圖像平滑程度越大
參考博客1:關(guān)于GaussianBlur函數(shù)
參考博客2:關(guān)于高斯核運算