• opencv 图像平滑


    高通滤波可以找到图像的边缘。低通滤波可以去除噪音,模糊图像。

    自定义滤波器 cv2.filter2D()

    1. import cv2
    2. import numpy as np
    3. from matplotlib import pyplot as plt
    4. img = cv2.imread('img1.png')
    5. img=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
    6. kernel = np.ones((5, 5), np.float32) / 25
    7. dst = cv2.filter2D(img, -1, kernel)
    8. plt.subplot(121), plt.imshow(img), plt.title('Original')
    9. plt.xticks([]), plt.yticks([])
    10. plt.subplot(122), plt.imshow(dst), plt.title('Averaging')
    11. plt.xticks([]), plt.yticks([])
    12. plt.show()

     图像模糊(图像平滑)

    使用低通滤波器可以达到图像模糊的目的(就是去除图像中的高频成分(比如:噪音,边界)

    cv2.blur() 

    1. import cv2
    2. from matplotlib import pyplot as plt
    3. img = cv2.imread('img1.png')
    4. blur = cv2.blur(img, (5, 5))
    5. img=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
    6. blur=cv2.cvtColor(blur,cv2.COLOR_BGR2RGB)
    7. plt.subplot(121), plt.imshow(img), plt.title('Original')
    8. plt.xticks([]), plt.yticks([])
    9. plt.subplot(122), plt.imshow(blur), plt.title('Blurred')
    10. plt.xticks([]), plt.yticks([])
    11. plt.show()

    高斯模糊 cv2.GaussianBlur()

    高斯核可以有效去除高斯噪音

    1. import cv2
    2. from matplotlib import pyplot as plt
    3. img = cv2.imread('img1.png')
    4. # 0 是指根据窗口大小 (5,5) 来计算高斯函数标准差
    5. blur = cv2.GaussianBlur(img, (5, 5), 0) # 高斯模糊
    6. img=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
    7. blur=cv2.cvtColor(blur,cv2.COLOR_BGR2RGB)
    8. plt.subplot(121), plt.imshow(img), plt.title('Original')
    9. plt.xticks([]), plt.yticks([])
    10. plt.subplot(122), plt.imshow(blur), plt.title('Blurred')
    11. plt.xticks([]), plt.yticks([])
    12. plt.show()

     中值模糊 cv2.medianBlur(img,5)

    使用像素的中值替代像素的值。这个可以去除椒盐噪声。

    1. import cv2
    2. from matplotlib import pyplot as plt
    3. img = cv2.imread('img1.png')
    4. blur = cv2.medianBlur(img, 5) # 中值模糊
    5. img=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
    6. blur=cv2.cvtColor(blur,cv2.COLOR_BGR2RGB)
    7. plt.subplot(121), plt.imshow(img), plt.title('Original')
    8. plt.xticks([]), plt.yticks([])
    9. plt.subplot(122), plt.imshow(blur), plt.title('Blurred')
    10. plt.xticks([]), plt.yticks([])
    11. plt.show()

     

  • 相关阅读:
    在VMware上安装Metasploitable2
    Android jetpack room 数据库的升级
    WP-AutoPostPro 汉化版: WordPress自动采集发布插件
    EasyCode整合mybatis-plus的配置
    【Python脚本进阶】1.2、python脚本基础知识(上)
    Unity渲染顺序相关学习
    【毕业设计】20-基于单片机的指纹识别系统设计(原理图工程+源代码工程+实物操作图+答辩论文+答辩PPT)
    Nginx日志管理之访问日志配置
    Ra-08透传固件应用
    java面试题整理《基础篇》六
  • 原文地址:https://blog.csdn.net/qq_40107571/article/details/127984534