Python OpenCV圖像模糊處理介紹
其實(shí)我們平時(shí)在深度學(xué)習(xí)中所說(shuō)的卷積操作,在 opencv 中也可以進(jìn)行,或者說(shuō)是類似操作。那么它是什么操作呢?它就是圖像的模糊(濾波)處理。
均值濾波
使用 opencv 中的cv2.blur(src, ksize)函數(shù)。其參數(shù)說(shuō)明是:
src: 原圖像ksize: 模糊核大小
原理:它只取內(nèi)核區(qū)域下所有像素的平均值并替換中心元素。3x3 標(biāo)準(zhǔn)化的盒式過(guò)濾器如下所示:

特征:核中區(qū)域貢獻(xiàn)率相同。作用:對(duì)于椒鹽噪聲的濾除效果比較好。
# -*-coding:utf-8-*-
"""
File Name: image_deeplearning.py
Program IDE: PyCharm
Date: 2021/10/17
Create File By Author: Hong
"""
import cv2 as cv
def image_blur(image_path: str):
"""
圖像卷積操作:設(shè)置卷積核大小,步距
:param image_path:
:return:
"""
img = cv.imread(image_path, cv.IMREAD_COLOR)
cv.imshow('input', img)
# 模糊操作(類似卷積),第二個(gè)參數(shù)ksize是設(shè)置模糊內(nèi)核大小
result = cv.blur(img, (5, 5))
cv.imshow('result', result)
cv.waitKey(0)
cv.destroyAllWindows()
if __name__ == '__main__':
path = 'images/2.png'
image_blur(path)
結(jié)果展示:

高斯濾波
高斯濾波使用的是cv2.GuassianBlur(img, ksize,sigmaX,sigmaY)函數(shù)。
說(shuō)明:sigmaX,sigmaY分別表示 X,Y 方向的標(biāo)準(zhǔn)偏差。如果僅指定了sigmaX,則sigmaY與sigmaX相同;如果兩者都為零,則根據(jù)內(nèi)核大小計(jì)算它們。
特征:核中區(qū)域貢獻(xiàn)率與距離區(qū)域中心成正比,權(quán)重與高斯分布相關(guān)。
作用:高斯模糊在從圖像中去除高斯噪聲方面非常有效。
def image_conv(image_path: str):
"""
高斯模糊
:param image_path:
:return:
"""
img = cv.imread(image_path, cv.IMREAD_COLOR)
cv.imshow('img', img)
# 高斯卷積(高斯濾波), 可以設(shè)置ksize,必須為奇數(shù),不為0時(shí),后面的步驟不起作用;也可以設(shè)置成(0,0),然后通過(guò)sigmaX和sigmaY計(jì)算標(biāo)準(zhǔn)偏差
result = cv.GaussianBlur(img, (0, 0), 15)
cv.imshow('result', result)
cv.waitKey(0)
cv.destroyAllWindows()
if __name__ == '__main__':
path = 'images/2.png'
image_conv(path)
結(jié)果展示:

高斯雙邊濾波
雙邊濾波(模糊)使用的是cv2.bilateralFilter(img,d, sigmaColor, sigmaSpace)函數(shù)。
說(shuō)明:d為鄰域直徑,sigmaColor為空間高斯函數(shù)標(biāo)準(zhǔn)差,參數(shù)越大,臨近像素將會(huì)在越遠(yuǎn)的地方越小。
sigmaSpace灰度值相似性高斯函數(shù)標(biāo)準(zhǔn)差,參數(shù)越大,那些顏色足夠相近的的顏色的影響越大。
雙邊濾波是一種非線性的濾波方法,是結(jié)合圖像的空間鄰近度和像素值相似度的一種折衷處理,同時(shí)考慮空間與信息和灰度相似性,達(dá)到保邊去噪的目的,具有簡(jiǎn)單、非迭代、局部處理的特點(diǎn)。之所以能夠達(dá)到保邊去噪的濾波效果是因?yàn)闉V波器由兩個(gè)函數(shù)構(gòu)成:一個(gè)函數(shù)是由幾何空間距離決定濾波器系數(shù),另一個(gè)是由像素差值決定濾波器系數(shù)。
特征:處理耗時(shí)。作用:在濾波的同時(shí)能保證一定的邊緣信息。
# 邊緣保留濾波器——高斯雙邊模糊
def image_bifilter(image_path: str):
"""
高斯雙邊模糊
:param image_path: 圖片文件
:return: 無(wú)返回值
"""
img = cv.imread(image_path, cv.IMREAD_COLOR)
cv.imshow('input', img)
# 第三個(gè)參數(shù)是設(shè)置色彩、第四個(gè)參數(shù)是設(shè)置圖像坐標(biāo)
result = cv.bilateralFilter(img, 0, 50, 10)
cv.imshow('result', result)
cv.waitKey(0)
cv.destroyAllWindows()
if __name__ == '__main__':
path = 'images/2.png'
image_bifilter(path)
結(jié)果展示:

到此這篇關(guān)于Python OpenCV圖像模糊處理介紹的文章就介紹到這了,更多相關(guān)Python OpenCV圖像模糊處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python+OpenCV六種實(shí)時(shí)圖像處理詳細(xì)講解
- 深入學(xué)習(xí)Python+Opencv常用四種圖像處理操作
- Python+OpenCV數(shù)字圖像處理之ROI區(qū)域的提取
- Python+OpenCV圖像處理之直方圖統(tǒng)計(jì)
- opencv-python圖像處理安裝與基本操作方法
- Python OpenCV圖像處理之圖像濾波特效詳解
- Python中ROS和OpenCV結(jié)合處理圖像問(wèn)題
- Python詳細(xì)講解圖像處理的而兩種庫(kù)OpenCV和Pillow
- python opencv 圖像處理之圖像算數(shù)運(yùn)算及修改顏色空間
相關(guān)文章
分享5個(gè)數(shù)據(jù)處理更加靈活的pandas調(diào)用函數(shù)方法
這篇文章主要介紹了分享5個(gè)數(shù)據(jù)處理更加靈活的pandas調(diào)用函數(shù)方法,文章基于python的相關(guān)內(nèi)容展開(kāi)詳細(xì)介紹,需要的小伙伴可以參考一下2022-04-04
python算法練習(xí)之兔子產(chǎn)子(斐波那切數(shù)列)
這篇文章主要給大家介紹python算法練習(xí)兔子產(chǎn)子,文章先進(jìn)行問(wèn)題描述及分析然后設(shè)計(jì)算法最后再得出完整程序,需要的朋友可以參考一下 文章得具體內(nèi)容2021-10-10
Python利用3D引擎做一個(gè)太陽(yáng)系行星模擬器
Python有一個(gè)不錯(cuò)的3D引擎——Ursina。本文就來(lái)利用Ursina這一3D引擎做一個(gè)太陽(yáng)系行星模擬器,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-01-01
python實(shí)現(xiàn)PID溫控算法的示例代碼
PID算法是一種常用的控制算法,用于調(diào)節(jié)和穩(wěn)定控制系統(tǒng)的輸出,這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)pid溫控算法,需要的可以參考下2024-01-01
Python用matplotlib庫(kù)畫(huà)圖中文和負(fù)號(hào)顯示為方框的問(wèn)題解決
matplotlib中畫(huà)圖的時(shí)候會(huì)遇到負(fù)號(hào)顯示為方框的問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于Python用matplotlib庫(kù)畫(huà)圖中文和負(fù)號(hào)顯示為方框的問(wèn)題解決,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07
python asyncio 協(xié)程庫(kù)的使用
這篇文章主要介紹了python asyncio 協(xié)程庫(kù)的使用,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2021-01-01

