图像处理技术与应用(二)

图像处理技术与应用入门

椒盐噪声

椒盐噪声,也称为脉冲噪声,是一种常见的数字图像噪声。它通常表现为图像中随机出现的白色(椒)或黑色(盐)像素点,这些像素点在图像上呈现为黑白杂点。椒盐噪声的成因多种多样,包括图像传感器故障、传输信道错误、解码处理问题等。在图像处理中,椒盐噪声会对图像分割、特征提取、图像识别等操作造成直接影响

去除椒盐噪声的常用方法包括中值滤波、自适应中值滤波、基于小波变换和阈值处理的去噪算法等。这些算法旨在降低噪声对图像质量的影响,同时尽量保留图像的原始细节和特征。

以下是生成椒盐噪声和使用中值滤波器和高斯模糊去除椒盐噪声的代码示例:

from skimage import io, data

import numpy as np

img = data.hubble_deep_field()



# 随机生成5000个椒盐

rows, cols, dims = img.shape

for i in range(5000):

    x = np.random.randint(0, rows)

    y = np.random.randint(0, cols)

    img[x,y,:] = 255

io.imshow(img)

io.imsave('C:/Users/14919/OneDrive/Desktop/图像处理-工坊/22.jpg',img)

rows, cols, dims = img.shape

for i in range(5000):

    x = np.random.randint(0, rows)

    y = np.random.randint(0, cols)

    img[x,y,:] = 255

在给定的图像 img 上随机选择 5000 个像素点,并将这些像素点的所有颜色通道(红、绿、蓝)的值设置为 255,即白色产生一种类似于噪声或散点图的效果。

中值滤波

import cv2



# 读取带有椒盐噪声的图像

img = cv2.imread('22.jpg')



# 使用中值滤波器去除椒盐噪声

median_img = cv2.medianBlur(img, 5)    



# 显示去噪后的图像

cv2.imshow('Denoised Image', median_img)

cv2.waitKey(0)

cv2.destroyAllWindows()

应用中值滤波器去除椒盐噪声。medianBlur函数的参数5表示滤波器的核大小,即滤波窗口的宽度和高度都是5像素。

中值滤波器会遍历图像的每个像素,并用该像素周围5x5区域内的中值替换它的值。这种方法对于去除随机分布的噪声点非常有效。

高斯模糊

import cv2



image = cv2.imread('22.jpg')



blurred_image = cv2.GaussianBlur(image, (5, 5), 0)    



cv2.imshow('Blurred Image', blurred_image)

cv2.waitKey(0)

cv2.destroyAllWindows()

调用GaussianBlur函数对加载的图像应用高斯模糊。

高斯模糊是一种图像平滑技术,可以减少图像噪声和降低细节层次。

这里的(5, 5)是一个高斯核的尺寸,表示模糊窗口的宽度和高度都是5像素。参数0表示自动计算高斯核的标准差。

随机噪声

随机噪声是一种在时间上随机产生,其值在给定瞬间内无法预测的噪声。

这种噪声的特点是其幅度、波形及相位在任何一个时刻都是随机的,并且是一种前后独立的平衡随机过程。随机噪声通常服从于一定的统计分布规律,并且可以是多种类型的,包括脉冲噪声(如椒盐噪声)、窄带噪声(单频噪声)和起伏噪声(高斯噪声)等。脉冲噪声是突发性地产生、幅度大、持续时间短、间隔时间长的干扰;窄带噪声通常来自相邻电台或其他电子设备,看做是一种非所需的连续的已调正弦波;起伏噪声则在时域和频域内普遍存在,是通信系统中最基本的噪声源。

此外,随机噪声在数据集中表现为无规律的波动,且在数字滤波器和快速傅里叶变换的计算中,由于运算字长的限制,可能会产生有限字长效应,这种效应产生的噪声也可视为随机噪声。

以下是生成随机噪声和使用中值滤波器和高斯模糊去除随机噪声的代码示例:

添加随机噪声

import numpy as np

import cv2

import matplotlib.pyplot as plt

from skimage.io import imsave



# 读取彩色图像

image = cv2.imread('cc.jpg')

# 设置噪声的均值和标准差

mean = 0

std_dev = 80



# 生成随机噪声

noise = np.random.normal(mean, std_dev, image.shape).astype(np.float32)



# 向原始图像添加噪声

noisy_image = image + noise



# 裁剪噪声图像,确保数值在0-255之间

noisy_image = np.clip(noisy_image, 0, 255).astype(np.uint8)



# 显示原始图像和添加噪声后的图像

plt.subplot(1, 2, 1)

plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))

plt.title('Original Image')

plt.axis('off')



plt.subplot(1, 2, 2)

plt.imshow(cv2.cvtColor(noisy_image, cv2.COLOR_BGR2RGB))

plt.title('Noisy Image')

plt.axis('off')



plt.show()



# 保存添加噪声后的图片

imsave('C:/Users/14919/OneDrive/Desktop/33.jpg',img)

红色文字段生成随机噪声并将其添加到原始图像中,然后对结果图像进行裁剪,以确保所有的像素值都在0到255的范围内,这是8位图像的标准像素值范围。

高斯滤波器

import numpy as np

import cv2

import matplotlib.pyplot as plt



# 读取彩色图像

image = cv2.imread('33.jpg')  



# 设置高斯噪声的均值和标准差

mean = 0

std_dev = 80



# 生成随机高斯噪声

noise = np.random.normal(mean, std_dev, image.shape).astype(np.float32)



# 向原始图像添加噪声

noisy_image = image + noise



# 裁剪噪声图像,确保数值在0-255之间

noisy_image = np.clip(noisy_image, 0, 255).astype(np.uint8)



# 使用高斯滤波器对噪声图像进行降噪处理

# ksize是高斯核的大小,sigmaX是高斯核在X方向的标准差

denoised_image = cv2.GaussianBlur(noisy_image, (5, 5), sigmaX=0)



# 显示原始图像、添加噪声后的图像和降噪后的图像

plt.subplot(1, 3, 1)

plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))

plt.title('Original Image')

plt.axis('off')



plt.subplot(1, 3, 2)

plt.imshow(cv2.cvtColor(noisy_image, cv2.COLOR_BGR2RGB))

plt.title('Noisy Image')

plt.axis('off')



plt.subplot(1, 3, 3)

plt.imshow(cv2.cvtColor(denoised_image, cv2.COLOR_BGR2RGB))

plt.title('Denoised Image')

plt.axis('off')



plt.show()

红色文字段置高斯噪声的参数:均值 mean 为 0,标准差 std_dev 为 50。

生成一个与原始图像 image 大小相同的高斯噪声数组 noise,其中包含随机采样的值,这些值服从均值为 mean,标准差为 std_dev 的正态分布。噪声数组的数据类型被转换为 np.float32 以保持计算精度。

将生成的噪声 noise 与原始图像 image 相加,得到一个带有噪声的图像 noisy_image。

使用 np.clip 函数将 noisy_image 的像素值限制在 0 到 255 的范围内,并转换其数据类型为 np.uint8,以确保图像的像素值有效且适合显示。

通过应用高斯滤波器对 noisy_image 进行降噪处理,得到 denoised_image。高斯滤波器的核大小设置为 5x5,且在 X 方向上的标准差 sigmaX 设置为 0(这将自动计算为核大小的一半,即 sigmaX = 0.3 * (ksize - 1) + 0.8)。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

云计算革新:以太网 Scale-UP 网络为 GPU 加速赋能

谈谈基于以太网的GPU Scale-UP网络 Intel Gaudi-3 采用 RoCE 互联技术,促进了 Scale-UP 解决方案。业界专家 Jim Keller 倡导以太网替代 NVLink。Tenstorrent 成功应用以太网实现片上网络互联。RoCE 和以太网已成为互联解决方案的新兴趋势,为高性能计算提…

前端H5动态背景登录页面(下)

最近正好有点儿时间,把之前没整理完的前端动态背景登录页面给整理一下!这是之前的连接前端H5动态背景登录页面(上),这主要是两个登陆页面,一个彩色气泡,一个动态云朵,感兴趣的可以点…

关爱通丨从AIGC到硅基人同事:人工智能迭代重塑HR管理策略

2024年,一股创新的浪潮悄无声息地席卷了全球,推动了人工智能领域的重大突破。Sora视频模型的惊艳发布,成为了这一创新浪潮的标志性事件。 Sora这个名字源自日语中的“空”(そら sora),象征着天空的无限广阔…

机器学习作业3____决策树(CART算法)

目录 一、简介 二、具体步骤 样例: 三、代码 四、结果 五、问题与解决 一、简介 CART(Classification and Regression Trees)是一种常用的决策树算法,可用于分类和回归任务。这个算法由Breiman等人于1984年提出,它…

sorensen索伦森电源维修XRF系列程控电源XRF600-4

AMETEK直流电源产品有两种类型:固定量程类型和自动量程类型。 固定量程电源是经济型的,输出范围为传统的矩形范围。 自动量程电源,在满输出功率的基础上,扩展了电流和电压的输出范围,使其能够满足更广泛的测试需求&am…

自由场、半自由场、扩散场

按声场性质可以将声场分为三类:自由声场、半自由声场、扩散声场 分别对应着全消声室,半消声室,混响室 自由声场: 声源在均匀、各向同性媒介中传播时,不计边界影响的声场,此时声场中只有直达声没有反射声。…

数据库系统原理实验报告4 | 数据完整性

整理自博主本科《数据库系统原理》专业课自己完成的实验报告,以便各位学习数据库系统概论的小伙伴们参考、学习。 专业课本: ———— 本次实验使用到的图形化工具:Heidisql 目录 一、实验目的 二、实验内容 1、建表 2、对1题中创建的Stud…

MySQL--mysql的安装(压缩包安装保姆级教程)

官网下载:www.mysql.com MySQL :: Download MySQL Community Server (Archived Versions) 1.MySQL下载流程: 第一步:点击download, 下滑找到MySQL community(gpl)Downloads>> 第二步:点…

问题-MySQL将较大的SQL文件导入MySQL

迁移数据的时候,我们有时候会用sqlyog等数据库工具导入到新数据库。可能插入的SQL语句太大,出现导入一半失败的情况。明明代码没错,这让人摸不着头脑。 对于大文件导入,有几种方法: 方法1:使用命令行&…

这几种MBTI,活该做项目经理!

最近公司群里发了一个性格测试(MBTI),让根据大家测出来的性格,适当挖掘一下自身潜力。 当对照性格解析时,才发现公司里真是卧虎藏龙,而且每个人测出来的性格和平时表现出的自己都非常贴合。 MBTI性格测试…

2024年Q1企业邮箱安全性研究报告:钓鱼邮件同比增长59.9%

4月23日,Coremail邮件安全联合北京中睿天下信息技术有限公司发布《2024年第一季度企业邮箱安全性研究报告》。对当前企业邮箱的应用状况和安全风险进行了分析。 1、垃圾邮件持续增长 根据Coremail邮件安全人工智能实验室最新数据显示,2024年第一季度&am…

Postman - 设置变量

场景: 比如你接口都有权限,访问需要每调一个接口都手动放token的值,这个时候就可以搞个全局的变量,只设置一次就可以了 1、设置变量 Environments -> Globals - > 设置key 、value 2、使用变量 {{你得变量名-key}} 3…

电动车DC-DC80V降33V/12V 3A大功率同步降压芯片_AH1008

AH1008是一款专为电动车设计的同步降压芯片,TEL:186*4884*3702*能够将输入电压从80V稳定地降至33V或12V,并提供最大3A的输出电流。该芯片采用了先进的同步降压转换技术,有效降低了能量损耗,提升了转换效率,…

做抖音小店,“自然流量”和“达人带货”,选择哪个更香?

大家好,我是电商笨笨熊 做抖音小店,关于选择自然流还是达人带货,从推出时就一直争吵到现在; 有人觉得自然流不需要佣金,一次性带来的爆单量很大; 有人觉得达人带货细水长流,虽然需要佣金&…

【大语言模型LLM】-基础语言模型和指令微调的语言模型

🔥博客主页:西瓜WiFi 🎥系列专栏:《大语言模型》 很多非常有趣的模型,值得收藏,满足大家的收集癖! 如果觉得有用,请三连👍⭐❤️,谢谢! 长期不…

干货教程【AI篇】| 真人照片转动漫AI工具分享

今天给大家分享一个真人照片转动漫的工具。用真是拍摄的照片生成动漫/漫画/手绘/卡通图的工具。 需要这个工具的同学可以关注【文章底部公众号】,回复关键词【zpdm】即可获取本文所讲工具。 首先我们将下载下来的压缩包解压 直接双击红框内的文件就可以运行了。启…

ThinkPad E14 Gen 4,R14 Gen 4,E15 Gen 4(21E3,21E4,21E5,21E6,21E7)原厂Win11系统恢复镜像下载

lenovo联想ThinkPad笔记本电脑原装出厂Windows11系统安装包,恢复出厂开箱状态一模一样 适用型号:ThinkPad E14 Gen 4,ThinkPad R14 Gen 4,ThinkPad E15 Gen 4 (21E3,21E4,21E5,21E6,21E7) 链接:https://pan.baidu.com/s/1QRHlg2yT_RFQ81Tg…

解决在 Python 数据分析中遇到的 Matplotlib 字体警告问题

当在 Python 数据分析中遇到类似以下警告时: D:\anaconda3\lib\site-packages\matplotlib\backends\backend_agg.py:211: RuntimeWarning: Glyph 24037 missing from current font.font.set_text(s, 0.0, flagsflags) D:\anaconda3\lib\site-packages\matplotlib\ba…

【前端】3. CSS【万字长文】

CSS 是什么 层叠样式表 (Cascading Style Sheets). CSS 能够对网页中元素位置的排版进行像素级精确控制, 实现美化页面的效果. 能够做到页面的样式和结构分离. CSS 就是 “东方四大邪术” 之化妆术. 基本语法规范 选择器 {一条/N条声明} 选择器决定针对谁修改 (找谁)声明决…

XOCIETY在Sui构建玩家的天堂

Sui惊人的速度和创新的NFT技术使其成为游戏的绝佳环境,而没有什么比XOCIETY更能证明这一点了。XOCIETY是一款新的流行射击游戏,具有RPG元素,将于今年晚些时候登陆Sui网络。这款由NDUS Interactive制作的游戏在基于虚幻引擎5构建的丰富环境中提…