当前位置: 首页 > news >正文

Opencv-图像噪声(均值滤波、高斯滤波、中值滤波)

图像的噪声

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

图像的平滑

在这里插入图片描述

均值滤波

在这里插入图片描述
在这里插入图片描述

均值滤波代码实现

import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
from pylab import mplmpl.rcParams['font.sans-serif'] = ['SimHei']img = cv.imread("dog.png")#均值滤波
'''
cv.blur(img, (5, 5))将对图像img进行均值模糊处理。
参数(5, 5)表示卷积核的大小,这里是一个5x5的卷积核。卷积核的大小决定了模糊的程度,较大的卷积核会导致更强的模糊效果。
'''
blur = cv.blur(img,(5,5))plt.figure(figsize=(5,4),dpi=100)
'''
plt.figure()函数用于创建一个新的图像窗口,并返回一个指向该窗口的引用。
figsize=(10, 8)参数指定了图像窗口的大小,这里设置为宽度为10英寸,高度为8英寸。
dpi=100参数指定了图像窗口的分辨率,这里设置为100。'''plt.subplot(121),plt.imshow(img[:,:,::-1]),plt.title("原图")
'''
plt.subplot(121)函数用于创建一个子图区域。参数(121)表示将图像窗口分割为1行2列的网格,并选择第一个子图来显示图像。
plt.imshow(img[:, :, ::-1])函数用于显示图像。
img是需要显示的图像数组,[:, :, ::-1]表示对图像进行颜色通道的转换,由BGR顺序转换为RGB顺序。
plt.title("原图")函数用于设置子图的标题。
'''
plt.xticks([]),plt.yticks([])
'''
plt.xticks([])和plt.yticks([])函数用于设置坐标轴的刻度标签。
[]为空列表,表示不显示刻度标签,即去除x轴和y轴的刻度标签。
'''plt.subplot(122),plt.imshow(blur[:,:,::-1]),plt.title("均值滤波")
plt.xticks([]),plt.yticks([])plt.show()

结果展示

在这里插入图片描述

高斯滤波概念

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码实现

import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
from pylab import mpl
import randommpl.rcParams['font.sans-serif'] = ['SimHei']img =cv.imread("lena.png")#添加高斯噪声
noise_sigma = 100  # 高斯噪声的标准差noise = np.zeros(img.shape, np.int16)
cv.randn(noise, 0, noise_sigma)img_with_noise = img + noise
img_with_noise = np.clip(img_with_noise, 0, 255).astype(np.uint8)cv.imshow("Lena with Gaussian Noise", img_with_noise)
cv.waitKey(0)blur = cv.GaussianBlur(img_with_noise,(3,3),1)plt.figure(figsize=(5,4),dpi=100)
plt.subplot(121),plt.imshow(img_with_noise[:,:,::-1]),plt.title("噪声图片")
plt.xticks([]),plt.yticks([])plt.subplot(122),plt.imshow(blur[:,:,::-1]),plt.title("高斯滤波")
plt.xticks([]),plt.yticks([])
plt.show()

结果展示

在这里插入图片描述

中值滤波

在这里插入图片描述

代码实现

import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
from pylab import mpl
import randommpl.rcParams['font.sans-serif'] = ['SimHei']img =cv.imread("lena.png")#添加椒盐噪声
noise_density = 0.01  # 噪声比例noise = np.zeros(img.shape[:2], np.uint8)num_noise_pixels = int(noise_density * img.shape[0] * img.shape[1])for _ in range(num_noise_pixels):x = random.randint(0, img.shape[1]-1)y = random.randint(0, img.shape[0]-1)if random.random() < 0.5:noise[y, x] = 0  # 设置为黑色else:noise[y, x] = 255  # 设置为白色img_with_noise = cv.add(img, cv.cvtColor(noise, cv.COLOR_GRAY2BGR))#中值滤波blur = cv.medianBlur(img_with_noise,5)#图像显示
plt.figure(figsize=(5,4),dpi=100)
plt.subplot(121),plt.imshow(img_with_noise[:,:,::-1]),plt.title("噪声")
plt.xticks([]),plt.yticks([])plt.subplot(122),plt.imshow(blur[:,:,::-1]),plt.title("中值滤波")
plt.xticks([]),plt.yticks([])
plt.show()

结果展示

在这里插入图片描述

http://www.lryc.cn/news/173065.html

相关文章:

  • MasterAlign相机参数设置-增益调节
  • 9月22日,每日信息差
  • Java版本企业工程项目管理系统源码+spring cloud 系统管理+java 系统设置+二次开发
  • Android studio中如何下载sdk
  • STM32单片机中国象棋TFT触摸屏小游戏
  • 【PHP图片托管】CFimagehost搭建私人图床 - 无需数据库支持
  • CCITT 标准的CRC-16检验算法
  • docker启动mysql服务
  • Postman应用——Request数据导入导出
  • 十四、MySql的用户管理
  • 01.自动化交易综述
  • 基于SpringBoot的网上超市系统的设计与实现
  • 国内首家!阿里云 Elasticsearch 8.9 版本释放 AI 搜索新动能
  • uniapp获取一周日期和星期
  • QT之QListWidget的介绍
  • 数据结构--排序(1)
  • 【AI视野·今日NLP 自然语言处理论文速览 第三十七期】Thu, 21 Sep 2023
  • 高防服务器防护效果怎么样?
  • tomcat架构概览
  • 海康的资料
  • 【ELFK】之消息队列kafka
  • Qt核心:元对象系统、属性系统、对象树、信号槽
  • 【若依框架2】前后端分离版本添加功能页
  • Unity Bolt模块间通信
  • please choose a certificate and try again.(-5)报错怎么解决
  • 国产自研BI系统,更懂中国企业数据分析需求
  • 基于Java的高校竞赛管理系统设计与实现(亮点:发起比赛、报名、审核、评委打分、获奖排名,可随意更换主题如蓝桥杯、ACM、王者荣耀、吃鸡等竞赛)
  • 出血性脑卒中临床智能诊疗建模
  • Cesium 空间量算——生成点位坐标
  • 为什么曲面函数的偏导数可以表示其曲面的法向量?