最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python+OpenCV 實現(xiàn)簡單的高斯濾波(推薦)

 更新時間:2021年09月18日 15:31:16   作者:林林zonzon  
這篇文章主要介紹了Python+OpenCV 實現(xiàn)簡單的高斯濾波,在文中需要注意的是,這里我沒有特判當(dāng)sigma = 0的時候的情況,具體實現(xiàn)過程跟隨小編一起看看吧

基本原理講解:高斯模糊的算法

高斯核函數(shù)的編寫:構(gòu)建權(quán)重矩陣,采用高斯二維分布函數(shù)的形式進(jìn)行處理。需要注意的是,這里我沒有特判當(dāng)sigma = 0的時候的情況。

即是實現(xiàn):

1)權(quán)重矩陣的構(gòu)建

        根據(jù)公式:

 計算矩陣內(nèi)部結(jié)構(gòu),其中因為要進(jìn)行歸一化處理,e前方的系數(shù)會被約去,因此代碼中不體現(xiàn)。

2)矩陣元素歸一化處理

        計算矩陣內(nèi)部元素總和sum,最后做矩陣除法得到歸一化處理后的權(quán)重矩陣。

# 高斯核生成函數(shù) kernel_size:濾波核大小  sigma:高斯核函數(shù)的局部影響范圍
def gauss(kernel_size, sigma):
    #定型0填充
    kernel = np.zeros((kernel_size, kernel_size))
    #確定正態(tài)分布中間值
    center = kernel_size // 2
    # s:方差 sum:記錄總和
    s = sigma ** 2
    sum = 0
    for i in range(kernel_size):
        for j in range(kernel_size):
            #由于最后要進(jìn)行歸一化處理,此處根號下2Π計算可以省略
            x, y = i - center, j - center
            kernel[i, j] = np.exp(-(x ** 2 + y ** 2) / (2 * s))
            sum += kernel[i, j]
    #歸一化處理后輸出
    kernel = kernel / sum
    return kernel

濾波函數(shù)的編寫:將圖片中的每個像素點(邊緣除外)及其周圍像素乘以權(quán)重矩陣,實現(xiàn)高斯濾波

 需要注意的是此函數(shù)僅能處理彩色圖片,因為只有彩色圖片擁有img.shape[2]元素,灰度圖片沒有img.shape[2]元素不能用這個方法處理。

# 高斯濾波實現(xiàn),img:輸入圖像 kermel:輸入高斯核函數(shù)
def myfilter(img,kernel):
    # 讀取img行數(shù)核列數(shù)
    h = img.shape[0]
    w = img.shape[1]
    # 直接拷貝父對象
    img1 = copy.copy(img)
    # 去掉邊緣
    for i in range(1,h-1):
        for j in range(1,w-1):
            # 三通道處理
            for c in range(0,2):
                sum = 0
                # 加權(quán)
                for k in range(-1,2):
                    for l in range(-1,2):
                        sum += img[i+k,j+l,c]*kernel[k+1,l+1]
                img1[i,j,c] = sum
    return img1

同時在處理高斯濾波的時候,函數(shù)采取的是針對3*3的kernel_size進(jìn)行編寫的,要更改kernel_size的大小,需要更改此處的range范圍。 

 下面是灰度圖像的處理方式:

def myfilter2(img,kernel):
    # 讀取img行數(shù)核列數(shù)
    h = img.shape[0]
    w = img.shape[1]
    # 直接拷貝父對象
    img1 = copy.copy(img)
    # 去掉邊緣
    for i in range(1,h-1):
        for j in range(1,w-1):
            sum = 0
            for k in range(-1,2):
                for l in range(-1,2):
                    sum += img[i+k,j+l]*kernel[k+1,l+1]
            img1[i,j] = sum
    return img1

 最后整個運行代碼:

import copy
import cv2
import numpy as np
#圖像讀取
img_y = cv2.imread('p2.jpg')
# 選擇高斯生成函數(shù)3*3,其中sigama = 3
kernel = gauss(3,3)
# 打印這個生成函數(shù)
print(kernel)
# 高斯濾波處理
img1 = myfilter(img_y, kernel)
cv2.imshow('P1_yuantu',img_y)
cv2.imshow('P1_gaussian', img1)
cv2.waitKey(0)

 輸入輸出圖像結(jié)果展示:

原圖與高斯濾波后

需要注意的是采取的方法很原始,如果輸入的圖像過大,運行時間會很久。

這方面東西挺有意思的,只是初略的學(xué)習(xí),寫些基礎(chǔ)的東西,應(yīng)該還有錯漏的地方,希望有大佬們多多指點。

到此這篇關(guān)于Python+OpenCV 實現(xiàn)簡單的高斯濾波的文章就介紹到這了,更多相關(guān)Python OpenCV 高斯濾波內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • PyTorch中clone()、detach()及相關(guān)擴(kuò)展詳解

    PyTorch中clone()、detach()及相關(guān)擴(kuò)展詳解

    這篇文章主要給大家介紹了關(guān)于PyTorch中clone()、detach()及相關(guān)擴(kuò)展的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Python中re模塊常用方法總結(jié)分析

    Python中re模塊常用方法總結(jié)分析

    這篇文章主要為大家介紹了Python中re模塊常用方法,并對這些常用方法進(jìn)行總結(jié)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-09-09
  • Python基于pillow庫實現(xiàn)生成圖片水印

    Python基于pillow庫實現(xiàn)生成圖片水印

    這篇文章主要介紹了Python基于pillow庫實現(xiàn)生成圖片水印,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • python3實現(xiàn)繪制二維點圖

    python3實現(xiàn)繪制二維點圖

    今天小編就為大家分享一篇python3實現(xiàn)繪制二維點圖,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Pandas直接讀取sql腳本的方法

    Pandas直接讀取sql腳本的方法

    這篇文章主要介紹了Pandas直接讀取sql腳本的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Python標(biāo)準(zhǔn)庫之collections包的使用教程

    Python標(biāo)準(zhǔn)庫之collections包的使用教程

    這篇文章主要給大家介紹了Python標(biāo)準(zhǔn)庫之collections包的使用教程,詳細(xì)介紹了collections中多個集合類的使用方法,相信對大家具有一定的參考價值,需要的朋友們下面隨小編一起來學(xué)習(xí)學(xué)習(xí)吧。
    2017-04-04
  • Go1.16引入目錄遍歷優(yōu)化解析

    Go1.16引入目錄遍歷優(yōu)化解析

    Go1.16版本中,對目錄遍歷進(jìn)行了顯著的優(yōu)化,新增的接口os.ReadDir、(*os.File).ReadDir和filepath.WalkDir使用fs.DirEntry代替os.FileInfo,減少了系統(tǒng)調(diào)用次數(shù),提高了遍歷效率,測試顯示,優(yōu)化后的遍歷速度比原先快了480%
    2024-10-10
  • pandas參數(shù)設(shè)置的實用小技巧

    pandas參數(shù)設(shè)置的實用小技巧

    這篇文章主要給大家介紹了關(guān)于pandas參數(shù)設(shè)置的實用小技巧,文中通過實例代碼結(jié)束的非常詳細(xì),對大家學(xué)習(xí)或者使用pandas具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 詳解Python中文分詞而生的jieba庫

    詳解Python中文分詞而生的jieba庫

    這篇文章主要介紹了詳解Python中文分詞而生的jieba庫,在Python中,最好用的中文分詞庫是jieba。用“結(jié)巴”給一個中文分詞庫命名,非常生動形象,同時還帶有一種程序員式的幽默感,需要的朋友可以參考下
    2023-07-07
  • 一文掌握Python爬蟲XPath語法

    一文掌握Python爬蟲XPath語法

    這篇文章主要介紹了一文掌握Python爬蟲XPath語法,xpath是一門在XML和HTML文檔中查找信息的語言,可用來在XML和HTML文檔中對元素和屬性進(jìn)行遍歷,XPath 通過使用路徑表達(dá)式來選取 XML 文檔中的節(jié)點或者節(jié)點集。下面會更學(xué)習(xí)的介紹,需要的朋友可以參考一下
    2021-11-11

最新評論

庆阳市| 循化| 贞丰县| 马龙县| 车险| 长岭县| 保靖县| 阆中市| 蒙自县| 永寿县| 广宗县| 精河县| 遵化市| 黔东| 留坝县| 龙岩市| 彭州市| 古丈县| 黄梅县| 文登市| 抚顺市| 囊谦县| 西峡县| 多伦县| 亚东县| 林州市| 穆棱市| 嘉黎县| 榆树市| 临泽县| 普陀区| 大埔区| 双牌县| 环江| 义马市| 遂宁市| 中卫市| 建宁县| 泸州市| 墨竹工卡县| 玛曲县|