在matlab中,存在执行直接得函数来添加高斯噪声和椒盐噪声。Python-OpenCV中虽然不存在直接得函数,但是很容易使用相关的函数来实现。

代码:

import numpy as np

import random

import cv2

def sp_noise(image,prob):

'''

添加椒盐噪声

prob:噪声比例

'''

output = np.zeros(image.shape,np.uint8)

thres = 1 - prob

for i in range(image.shape[0]):

for j in range(image.shape[1]):

rdn = random.random()

if rdn < prob:

output[i][j] = 0

elif rdn > thres:

output[i][j] = 255

else:

output[i][j] = image[i][j]

return output

def gasuss_noise(image, mean=0, var=0.001):

'''

添加高斯噪声

mean : 均值

var : 方差

'''

image = np.array(image/255, dtype=float)

noise = np.random.normal(mean, var ** 0.5, image.shape)

out = image + noise

if out.min() < 0:

low_clip = -1.

else:

low_clip = 0.

out = np.clip(out, low_clip, 1.0)

out = np.uint8(out*255)

#cv.imshow("gasuss", out)

return out

可见,只要我们得到满足某个分布的多维数组,就能作为噪声添加到图片中。

例如:

import cv2

import numpy as np

>>> im = np.empty((5,5), np.uint8) # needs preallocated input image

>>> im

array([[248, 168, 58, 2, 1], # uninitialized memory counts as random, too ? fun ;)

[ 0, 100, 2, 0, 101],

[ 0, 0, 106, 2, 0],

[131, 2, 0, 90, 3],

[ 0, 100, 1, 0, 83]], dtype=uint8)

>>> im = np.zeros((5,5), np.uint8) # seriously now.

>>> im

array([[0, 0, 0, 0, 0],

[0, 0, 0, 0, 0],

[0, 0, 0, 0, 0],

[0, 0, 0, 0, 0],

[0, 0, 0, 0, 0]], dtype=uint8)

>>> cv2.randn(im,(0),(99)) # normal

array([[ 0, 76, 0, 129, 0],

[ 0, 0, 0, 188, 27],

[ 0, 152, 0, 0, 0],

[ 0, 0, 134, 79, 0],

[ 0, 181, 36, 128, 0]], dtype=uint8)

>>> cv2.randu(im,(0),(99)) # uniform

array([[19, 53, 2, 86, 82],

[86, 73, 40, 64, 78],

[34, 20, 62, 80, 7],

[24, 92, 37, 60, 72],

[40, 12, 27, 33, 18]], dtype=uint8)

然后再:

img = ...

noise = ...

image = img + noise

参考链接:

python opencv show图片,debug技巧

debug的时候可以直接把图片画出来debug. imshow函数就是python opencv的展示图片的函数,第一个是你要起的图片名,第二个是图片本身.waitKey函数是用来展示图片多久的,默认 ...

Python &plus; opencv 实现图片文字的分割

实现步骤: 1.通过水平投影对图形进行水平分割,获取每一行的图像: 2.通过垂直投影对分割的每一行图像进行垂直分割,最终确定每一个字符的坐标位置,分割出每一个字符: 先简单介绍一下投影法:分别在水平和 ...

opencv给图片添加文字水印&lt&semi;转&gt&semi;

其中有一些改动为了文字大小等还有一些图片的尺寸,真正使用的时候可以把尺寸的屏蔽掉 头文件: //==================================================== ...

python opencv 读取图片 返回图片某像素点的b,g,r值

转载:https://blog.csdn.net/weixin_41799483/article/details/80884682 #coding=utf-8   #读取图片 返回图片某像素点的b,g ...

Python OpenCV 显示图片,图片分类

def divide_image(path,g_path1,g_path0): img_lst = os.listdir(path) for i in img_lst: print('类别1,类别0' ...

用matlab给图像加高斯噪声和椒盐噪声(不调用imnoise函数)

图像画面中的噪声,大致可以分为两类:高斯噪声和椒盐噪声.在这里,我们先看下图像中两种噪声各自的特征. 椒盐噪声:噪声幅值基本相同,但出现位置随机. 高斯噪声:图像中每一点都存在噪声,但幅值是随机分布的 ...

用 Python 和 OpenCV 检测图片上的条形码

用 Python 和 OpenCV 检测图片上的的条形码 这篇博文的目的是应用计算机视觉和图像处理技术,展示一个条形码检测的基本实现.我所实现的算法本质上基于StackOverflow 上的这个问 ...

【转】Windows下使用VS2008编译OpenCV 2&period;1 添加Intel TBB和Python支持

Windows下使用VS2008编译OpenCV2.1 添加Intel TBB和Python支持 步骤: 1.仔细阅读OpenCV官网上的InstallGuide:http://opencv.will ...

Python&plus;Opencv实现把图片转为视频

1. 安装Opencv包 在Python命令行输入如下命令(如果你使用的Anaconda,直接进入Anaconda Prompt键入命令即可.如果你不知道Anaconda是什么,可以参考王树义老师的文 ...

随机推荐

轻量linux-Crunch bang

主页地址:http://crunchbang.org crunch bang11昵称 wheezy crunchbang 11 基于 debian7

php ajax提交post请求出现数组被截断情况的解决方法

一.场景 今天做保存专题商品列表的时候发现,前端明明有2300多条数据,但是实际服务端接受存入数据库才166条 二.解决过程 经过调试发现前端页面提交post请求时数据量是正确的,但到服务端只能接受到 ...

SSH小结

工作有一段时间了,经常用SSH登录远程机器,但对原理一直不是很了解,所以查阅了一些资料,写个小结. 一. SSH是什么? SSH的全称是Secure Shell, 是一种"用来在不安全的网络 ...

boost&colon;&colon;pool 库速记

使用示例 #include #include #include #inc ...

javascrip实现:若选中TreeView的父节点checkbox,则其子节点全部选中;子节点全部没选中,则父节点也会没选中。

java学习过程中遇到的坑及解决方法

1. Table 'my_data_base.gjp_zhangwu' doesn't exist Query: select * from gjp_zhangwu Parameters: 数据库中的 ...

vSphere 软件组件

vSphere 包括以下软件组件: ESXi 一种虚拟化平台,您可使用此平台将虚拟机创建为一组配置和磁盘文件,它们可共同执行物理机的所有功能. 通过 ESXi,可以运行虚拟机,安装操作系统,运行应用程 ...

微信小程序——页面之间传递值

小程序页面传值的方式: 1.正向传值:上一页面 -->  下一页面 url传值 本地储存 全局的app对象 2.反向传值:下一页面 -->  上一页面 本地储存 全局的app对象 先说一下 ...

转载:RESTful API 设计指南

http://www.ruanyifeng.com/blog/2014/05/restful_api.html 网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机.平板. ...

python添加高斯噪声_使用Python-OpenCV向图片添加噪声(高斯噪声、椒盐噪声)相关推荐

  1. 微信开发者工具 wxmi修改模版颜色_如何用手机给图片添加文字、诗词或者歌词?用对工具一键轻松解决...

    如何用手机给图片添加文字.诗词或者歌词?用对工具一键轻松解决 有很多朋友有给图片添加文字的需求,但觉得给图片添加歌词,诗词等,排版非常的打脑壳,想得到好的效果就更难了.今天我就给大家分享一种简单的方法 ...

  2. python给图片加半透明水印_Python+OpenCV为图片添加中文水印与图片水印

    OpenCV中在图片上输出中文一般有两种解决办法: 一种需要借助FreeType库实现.FreeType库是一个完全免费(开源)的.高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件. ...

  3. python opencv 为图片添加alpha通道并设置透明,判断是否存在alpha通道

    读取图片 使用函数cv2.imread(filepath,flags)读入一副图片 filepath:要读入图片的完整路径 flags:读入图片的标志 cv2.IMREAD_COLOR:默认参数,读入 ...

  4. python与算法社区_【Python算法】分类与预测——Python随机森林

    [Python算法]分类与预测--Python随机森林 1.随机森林定义 随机森林是一种多功能的机器学习算法,能够执行回归和分类的任务.同时,它也是一种数据降维手段,在处理缺失值.异常值以及其他数据探 ...

  5. python之禅 中文_《Python之禅》中对于Python编程过程中的一些建议

    <Python之禅>中对于Python编程过程中的一些建议 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  <Python之禅>中对于Pyt ...

  6. python代码去马赛克_十行python代码教你如何去除万恶的,如s一样的马赛克

    世界上有一种东西,叫作马赛克,不知道困扰了多少痴男怨女.小编新get到一个技能,忍不住拿出来秀一秀. 小编这几天的了解其实水印和马赛克的原理是一样的,都是覆盖.一般是去不了的,那么这个技术来了,请看~ ...

  7. python手绘效果图_用Python做个海量小姐姐素描图

    素描作为一种近乎完美的表现手法有其独特的魅力,随着数字技术的发展,素描早已不再是专业绘画师的专利,今天这篇文章就来讲一讲如何使用python批量获取小姐姐素描画像.文章共分两部分: 第一部分介绍两种使 ...

  8. python的简单使用_用python简单处理图片

    一:打开显示保存 # from PIL import Image # img = Image.open('E:\\pythonwd\\xiaoniao.jpg') # img.show() 这种图片显 ...

  9. python语音输入功能_“在Python中如何实现一点按钮就出现语音输入语音,输入语音后可以自动翻译为文字的程序?“python语音识别教程...

    Python用什么模块开发语音识别系统 使用YQ5969,这个语音识别模以支持1--8个咪头,还可以支持本地和识别不同需求.5米内本地识别 93%以上,云端识别率97%.这个语音识别模块可以滤除噪声. ...

  10. python形状识别算法_Python人工智能使用OpenCV进行图片形状的中心检测

    我们都知道正方形(长方形)的中心是2条对角线的交点,圆的中心是一个圆的圆心,如何在对象检测以及图片检测与识别领域,判断一个形状的中心,便是计算机视觉领域中的一个基础检测 中心检测 Opencv+pyt ...

最新文章

  1. Android开发之旅:环境搭建及HelloWorld
  2. 虚拟机中RedHat Linux系统安装
  3. 使用aop解决事务问题(xml版)
  4. 实战项目| 7天掌握神经网络预测模型
  5. github果然强大
  6. TM4C123核心板焊接须知
  7. html5tab页高德地图,高德地图系列web篇——目的地公交导航
  8. BZOJ——1607: [Usaco2008 Dec]Patting Heads 轻拍牛头
  9. sudo使用之实现权限分配
  10. 上传照片(身份证照片正反面)
  11. K-means聚类算法及其各种变形模型的实验分析
  12. 心愿未了有牵绊。生命不息,折腾未止。
  13. redis链接不上,报保护模式
  14. IEEEAccess参考文献整理
  15. 简单的HANGMAN游戏
  16. 关于垂直线和水平线判断问题
  17. eclipse命令大全
  18. html css 布局_创建有吸引力HTML CSS动漫主题网站布局
  19. c语言的实训报告,C语言实训报告.doc
  20. ps ps aux 和ps -aux和 ps -ef的选择

热门文章

  1. 第二节:delay()延时实现LED灯的闪烁。
  2. 鸿蒙实训(基于智能硬件学习)第二期
  3. php获取目录下所有文件路径(递归)
  4. Nginx 联合创始人已被释放:「这是典型的敲诈,就这么简单」
  5. jQuery 操作 input 之 checkbox
  6. [kuanbin带我飞]的专题1---简单搜索
  7. 电工学习笔记——示波器交直流耦合的区别
  8. 人工智能与我们的世界
  9. pytorch-自我使用笔记
  10. edge浏览器安装chrome插件