五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動態(tài)

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

發(fā)布日期:2022-01-02 12:47 | 文章來源:CSDN

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

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

即是實現(xiàn):

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

根據(jù)公式:

計算矩陣內(nèi)部結(jié)構(gòu),其中因為要進行歸一化處理,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):
#由于最后要進行歸一化處理,此處根號下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進行編寫的,要更改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é)果展示:

原圖與高斯濾波后

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

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

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

版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務

7x24全年不間斷在線

專屬顧問服務

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務熱線

關(guān)注
微信

關(guān)注官方微信
頂部