OpenCV学习(15)-高斯平滑

该博客介绍了一种使用Python和Scipy库实现高斯模糊的方法。通过调用`cv2.getGaussianKernel`获取高斯核,然后使用`signal.convolve2d`进行卷积操作,对图像进行平滑处理。示例代码展示了如何读取图像并应用高斯模糊,最后展示结果。
# -*- coding: utf-8 -*-
import sys
import cv2
import numpy as np
from scipy import signal
import matplotlib.pyplot as plt

def gaussBlur(img,sigma,h,w,_boundary='fill',_fillvalue=0):
    gaussKernel_x=cv2.getGaussianKernel(sigma,w,cv2.CV_64F)
    gausskernel_x=np.transpose(gaussKernel_x) #转置 
    gaussBlur_x=signal.convolve2d(img,gaussKernel_x,mode='same',boundary=_boundary,fillvalue=_fillvalue)
    gaussKernel_y=cv2.getGaussianKernel(sigma,h,cv2.CV_64F)
    gaussBlur_xy=signal.convolve2d(gaussBlur_x,gaussKernel_y,mode='same',boundary=_boundary,fillvalue=_fillvalue)
    blurimg=np.round(gaussBlur_xy)
    blurimg=blurimg.astype(np.uint8)
    return blurimg

if __name__=="__main__":
   if len(sys.argv)>1 :
      img = cv2.imread(sys.argv[1],0)
   else:
      print('None')
   cv2.imshow('img',img)
   blurimg=gaussBlur(img,25,100,100,'symm',0)#越平滑越模糊
   cv2.imshow('gaussblur',blurimg)
   cv2.waitKey(0)
   cv2.destroyAllWindows()

原图-高斯平滑处理后

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值