Python Opencv实践 - 图像均值滤波

news2024/12/23 18:54:49
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.blur(src, ksize[, dst[, anchor[, borderType]]])
#src: 待处理图像
#ksize:kernel大小,比如(5,5)表示5x5的kernel
#参考资料:https://blog.csdn.net/hihell/article/details/112909678
img_blur = cv.blur(img_pepper_salt_noise, (3,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("Blurred");

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/890870.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JAVA调用外部电商API的详情步骤和注意事项

在现代电商生态中,电商API的使用变得越来越普遍。本文将为您详细介绍如何使用JAVA语言调用外部电商API的步骤,并提供一些在开发过程中需要特别注意的事项。希望通过本文的阐述,读者能够对JAVA调用外部电商API有一个全面的了解。 关键词&…

unity发布WebGL遇到的坑(持续更新)

1、unity默认字体在网页中不会显示 解决方法:自己新导入一个字体,使用导入的字体 2、之前打过包并运行过,后面又在unity中进行了修改,重新打包,运行发现还是修改之前的效果,虽然是新包, 解决方…

VTK vtkOBBTree 有向包围盒

vtkOBBTree 有向包围盒 vtkOBBTree是一个包围盒的树,它将体的每个cell分割到每个小的包围盒中,由SetNumberOfBuckets确定每个盒中放多少个 Cell。建立一个vtkOBBTree要先设定DataSet,SetDataSet。然后调用BuildLocator。包围盒精细程度由递归深度 (Max…

Linux问题--docker启动mysql时提示3306端口被占用

问题描述: 解决方法: 1.如果需要kill掉mysqld服务可以先通过 lsof -i :3306 2. 查询到占用3306的PID,随后使用 kill -15 PID 来kill掉mysqld服务。 最后结果

JDK 20下载与安装 (Windows 11系统)

JDK(Java Development Kit)是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVMJava系统类库)和JAVA工具。 JDK 20 下载 JDK 官网路径&#xff1…

内网穿透实战应用——【通过cpolar分享本地电脑上有趣的照片:发布piwigo网页】

通过cpolar分享本地电脑上有趣的照片:发布piwigo网页 文章目录 通过cpolar分享本地电脑上有趣的照片:发布piwigo网页前言1. 设定一条内网穿透数据隧道2. 与piwigo网站绑定3. 在创建隧道界面填写关键信息4. 隧道创建完成 总结 前言 首先在本地电脑上部署…

机器学习赋能乳腺癌预测:如何使用贝叶斯分级进行精确诊断?

一、引言 乳腺癌是女性最常见的恶性肿瘤之一,也会发生在男性身上。每年全球有数百万人被诊断出乳腺癌,对患者的生活和健康造成了巨大的影响。早期的乳腺癌检测和准确的诊断对于提高治疗的成功率至关重要。然而,乳腺癌的早期诊断面临着许多挑战…

[K8s]问题描述:k8s拉起来的容器少了cuda的so文件

问题解决:需要设置Runtimes:nvidia的同时设置Default Runtimenvidia

JAVA基础知识(六)——异常处理

异常 一、异常概述与异常体系结构二、常见异常三、异常处理机制一:try-catch-finally四、异常处理机制二:throws五、手动抛出异常:throw六、用户自定义异常类七、开发中如何选择使用try-catch-finally还是使用throws八、如何看待代码中的编译…

3年 Android 开发的面试心经(后悔当初没有拿 N+1)

作者:勇闯天涯 当某人顺利通过大厂面试时,总会有人认为这是运气比较好罢了,但他们不曾得知对方之前受过多少苦和委屈,又付出了多少努力一步步去突破这些困境。正是因为他们的努力付出,在合适的时间与地点,用…

Kali Linux中常用的渗透测试工具有哪些?

今天我们将继续探讨Kali Linux的应用,这次的重点是介绍Kali Linux中常用的渗透测试工具。Kali Linux作为一款专业的渗透测试发行版,拥有丰富的工具集,能够帮助安全专家和渗透测试人员检测和评估系统的安全性。 1. 常用的渗透测试工具 以下是…

【Perfetto】Perfetto 零基础入门

前因:视频卡顿问题,为了排除是cpu占用性能问题还是音视频编解码问题,接触到了Perfetto,感觉很好玩,学习一下。突然感觉公司挺好的,给新人很多成长空间,一边解bug,一边碰新技术&#…

【共同缔造 情暖襄阳】五社联动聚关怀 健康义诊助成长

为普及视力保护和口腔健康知识,传播眼科和口腔健康理念,结合2023年襄阳市民政局“共同缔造 情暖襄阳”社会工作服务项目,在襄阳市民政局、襄州区民政局支持下,襄州社工协会联合肖湾街道育红社区链接襄州区爱尔眼科医院、车氏口腔共…

Next.js - Loading UI and Streaming

特殊文件 loading.js 可帮助您使用 React Suspense 创建有意义的加载用户界面。使用此约定,您可以在加载路由段内容时显示来自服务器的即时加载状态。渲染完成后,新的内容会自动切换进来。 即时加载状态 即时加载状态是在导航时立即显示的后备用户界面…

基于SSM的超市管理系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

一、进入sql环境,以及sql的查询、新建、删除、使用

1、进入sql环境 》》》mysql -u root -p 》》》输入密码 2、sql语言的分类 3、注意事项: 4、基础操作: (1)查询所有数据库: show databases; 运行结果: (2)创建一个新的数据库&…

精细化降水预测:探索分钟级降水预报API的应用前景

天气对人们的生活和社会运行有着重要影响,尤其是降水预测在决策和安全方面具有关键作用。随着科技的不断发展,分钟级降水预报 API 正崭露头角,为精细化降水预测带来了前所未有的机会和挑战。分钟级降水预报 API 结合了先进的气象技术和实时数…

小黑账单 图表渲染失败 父子组件的生命周期钩子函数不会同步调用

项目场景&#xff1a; 记账本ECharts图表&#xff0c;Vue组件间传递数据 问题描述 图表组件中 mounted钩子中获取的list总是空的&#xff0c;表单组件亦然 PayEcharts.vue <template><div class"payEcharts"><div class"right"><…

Codeforces Round 893 (Div. 2) D.Trees and Segments

原题链接&#xff1a;Problem - D - Codeforces 题面&#xff1a; 大概意思就是让你在翻转01串不超过k次的情况下&#xff0c;使得a*&#xff08;0的最大连续长度&#xff09;&#xff08;1的最大连续长度&#xff09;最大&#xff08;1<a<n&#xff09;。输出n个数&…

团团代码生成器V1.0:一键生成完整的CRUD功能(提供Gitee源码)

前言&#xff1a;在日常开发的中&#xff0c;经常会需要重复写一些基础的增删改查接口&#xff0c;虽说不难&#xff0c;但是会耗费我们一些时间&#xff0c;所以我自己开发了一套纯SpringBoot实现的代码生成器&#xff0c;可以为我们生成单条数据的增删改查&#xff0c;还可以…