Python Opencv实践 - 图像中值滤波

news/2024/7/21 7:14:17 标签: python, opencv, 开发语言, 图像处理, 计算机视觉
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt

img = cv.imread("../SampleImages/pomeranian.png", cv.IMREAD_COLOR)
print(img.shape)
pixel_count = img.shape[0] * img.shape[1]
print(pixel_count)


#为图像添加椒盐噪声
#参考资料:https://blog.csdn.net/sinat_29957455/article/details/123977298
img_pepper_salt_noise = img.copy()
#椒盐噪声中盐(白点)和椒(黑点)的比例
salt_ratio = 0.5
pepper_ratio = 1 - salt_ratio
#噪点占图像像素比例
noise_ratio = 0.03
#添加salt噪声
num_salt = np.ceil(noise_ratio * pixel_count * salt_ratio)
#噪声添加位置
noise_locations = [np.random.randint(0, i - 1, int(num_salt)) for i in img.shape]
img_pepper_salt_noise[noise_locations[0],noise_locations[1],:] = [255,255,255]
#添加pepper噪声
num_pepper = np.ceil(noise_ratio * pixel_count * pepper_ratio)
noise_locations = [np.random.randint(0, i - 1, int(num_salt)) for i in img.shape]
img_pepper_salt_noise[noise_locations[0],noise_locations[1],:] = [0,0,0]

#图像中值滤波
#cv.medianBlur(src, ksize)
#src: 待处理图像
#ksize:kernel大小,核大小必须是比1大的奇数,比如3、5、7等
#参考资料:https://blog.csdn.net/qq_49478668/article/details/123485382
img_blur = cv.medianBlur(img_pepper_salt_noise, 3)

#显示图像
fig,axes = plt.subplots(nrows=1, ncols=3, figsize=(15,15), dpi=100)
axes[0].imshow(img[:,:,::-1])
axes[0].set_title("Original");
axes[1].imshow(img_pepper_salt_noise[:,:,::-1])
axes[1].set_title("Salt And Pepper Noise");
axes[2].imshow(img_blur[:,:,::-1])
axes[2].set_title("Median Blurred");

 

 


http://www.niftyadmin.cn/n/4956890.html

相关文章

【001】ts学习笔记-准备工作和【基本类型】

typescript安装的包 npm i typescript #安装ts npm i types/node --save-dev # TypeScript 项目中使用类型检查和自动补全。 npm i ts-node -g #可直接在nodejs环境中使用ts, 如:ts-node example.tstsc 常用命令 tsc -init #生成tsc目录下的配置文件:tsconfig.jso…

离线表切换准实时表(From Data Mart to Real-Time Data Mart)

设计思想说明 离线表切换准实时表是一种数仓技术,它将传统的离线数据仓库(Data Mart)转化为可以实时查询和分析的实时数据仓库(Real-Time Data Mart)。设计思想是通过对离线数据进行实时更新和增量加载,以…

邮件发送工具类及邮箱有效性校验

邮件对象 import lombok.Data;import java.util.Date;/*** 邮件对象** author huxiang*/ Data public class Email {/*** 邮件标题*/private String subject;/*** 邮件内容*/private String content;/*** 收件人,多个收件人用逗号分割*/private String recipients;/*** 发送时…

百度前端面试题

1. webpack优化 webpack的性能优化较多,我们可以对其进行分类: 优化一:打包后的结果,上线时的性能优化。(比如分包处理、减小包体积、CDN服务器等) 优化二:优化打包速度,开发或者构建…

测试开发与实践总结,测试人必看

写在前面: 写这篇文章的目的是为了能够更好的帮助刚入职的新人了解这个岗位和自己的工作,也想谈谈自己工作一年来对这个领域的了解程度,做一个小小总结吧~ 一、我理解的测试开发 测试开发与开发、测试的关系 以前在没有接触测试…

前端开发怎么解决性能优化的问题? - 易智编译EaseEditing

前端性能优化是确保网站或应用在加载速度、响应性和用户体验等方面达到最佳状态的关键任务。以下是一些解决前端性能优化问题的方法: 压缩和合并代码: 压缩和合并CSS、JavaScript和HTML文件可以减少文件大小,加快加载速度。使用压缩工具&am…

Cesium - custom primitve 的使用

cesium的官方例子 Custom Primitive 很有用&#xff0c;通过这个例子可以学到 如何在 cesium 中 自定义几何体 和 着色器。 <!DOCTYPE html> <html lang"en"><head><meta charset"utf-8" /><meta http-equiv"X-UA-Compat…

代码生成综述

代码生成大模型属于LLM模型的一个子类&#xff0c;理论来讲也是属于语言模型的一种特例。代码本身其实也是一种特殊的语言表示&#xff0c;所以代码模型的实现应该是具备通用自然语言和代码两部分的能力。实际的代码模型也是有两条路径来实现&#xff0c;让训练好的NLP LLM模型…