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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【图像处理opencv】_图像锐化

發布時間:2025/4/5 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【图像处理opencv】_图像锐化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

0 程序環境與所學函數

1 卷積

2 均值模糊

3 中值濾波

4 高斯模糊

5 雙邊濾波


0 程序環境與所學函數

本章程序運行需要導入下面三個庫,并定義了一個顯示圖像的函數

import cv2 as cv import numpy as np import matplotlib.pyplot as pltdef show(img):if img.ndim == 2:plt.imshow(img, cmap='gray')else:plt.imshow(cv.cvtColor(img, cv.COLOR_BGR2RGB))plt.show()

所學函數

#卷積

cv.filter2D(img, -1, kernel)

#均值模糊

cv.blur(img, (5,5))
cv.boxFilter(img, -1, (5,5))

#中值濾波

cv.medianBlur(img,3)

#高斯模板

cv.GaussianBlur(img, (5,5), sigma)

#雙邊濾波

cv.bilateralFilter(img, -1, sigmaColor=50, sigmaSpace=3)

1 卷積

原理:?

opencv里面提供了一個卷積函數 cv.filter2D(img,-1,kernel)
img-圖像,-1--數據類型,用-1代替表示與原圖像輸出一致,kernel--卷積核

程序實現:

img = np.ones((5,5)) kernel = np.ones((3,3)) #卷積核的選擇盡量選擇3×3,5×5等有中心的矩陣,不然可能報錯print(img) print(kernel)

結果

#數學上的卷積應該先要將卷積核鏡像一下再操作,這里是直接相乘相加只表示相關性 #卷積后得到的結果應該變小,邊緣會默認填充,也可以指定邊緣填充方式,具體可以在函數里查看 img2 = cv.filter2D(img,-1,kernel) print(img2)

結果

2 均值模糊

原理:均值濾波相當于對濾波器范圍內的矩陣數值取均值輸出得到的結果

?程序實現

#讀入一張帶有噪聲的圖片 img = cv.imread('pic/rose_spnoise_200x200.jpg') show(img)

顯示

#用一種原始的定義方法實現均值濾波 K = np.ones((3,3)) / 9img1 = cv.filter2D(img,-1,K) show(np.hstack([img,img1]))

結果

opencv提供函數實現,下面這兩個函數功能是一摸一樣,效果也是一模一樣的
cv.blur(img,(5,5))
cv.boxFilter(img,-1,(5,5))

img2 = cv.blur(img,(3,3)) show(np.hstack([img,img2]))

結果

img3 = cv.boxFilter(img,-1,(3,3)) show(np.hstack([img,img3]))

結果

3 中值濾波

原理

程序實現

img4= cv.medianBlur(img,3) #第二個數字必須是3,5,7...這樣的奇數 show(np.hstack([img,img4]))

結果

4 高斯模糊

原理:?高斯模糊卷積核與sigma(方差)的值有關,方差越大越平緩,方差越小越陡峭
?sigma很小時是幾乎沒有濾波效果的,sigma很大時和均值濾波結果相似

程序實現

?img = cv.imread('pic/rose_spnoise_200x200.jpg') show(img)#使用opencv里面提供的函數實現 cv.GaussianBlur(img,(5,5),sigma) 圖像 卷積核大小 方差 sigma = 0.5img2 = cv.GaussianBlur(img,(5,5),sigmaX=sigma) show(np.hstack([img,img2]))

結果

5 雙邊濾波

原理:可以保留邊緣等高頻信息,平滑顏色(灰度)相近的地方
?不斷計算卷積核:顏色差異越大,加權值越小;距離越遠,加權值越小

?

程序實現

img = cv.imread('pic/beer.jpg',0) show(img)#opencv提供函數實現 cv.bilateralFilter(img,-1,sigmaColor=50,sigmaSpace=3) img2 = cv.bilateralFilter(img,-1,sigmaColor=50,sigmaSpace=3) show(np.hstack([img,img2]))

?結果

總結

以上是生活随笔為你收集整理的【图像处理opencv】_图像锐化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。