2.图像作为函数 | Sigma对高斯噪声的影响、应用高斯噪声、图像处理注意事项_9

本文主要是介绍2.图像作为函数 | Sigma对高斯噪声的影响、应用高斯噪声、图像处理注意事项_9,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

Sigma对高斯噪声的影响

应用高斯噪声 

图像处理需注意的地方


好的。 我们说噪音的大小是由sigma决定的。

实际上,我们可以只看噪声函数本身,所以不要添加原始图像,只需看看噪声函数。

Sigma对高斯噪声的影响

噪音是什么意思? 是 0。

非常好!

这意味着一些值是什么? 有些值是正的,有些值是负的。

我们如何看待其中有"+"和"-"的图片?

如果我们说0是黑色的,另1是白色的,或 0是黑色的,255是白色的,我们怎么做呢?

错就错在说0是黑的。

我们要说:看,我们会将一些最小值映射到黑色,将一些最大值映射到白色,然后我们将它们分布在两者之间。

这样的话,0应该是什么颜色的?

你认为零应该是什么颜色,在黑色和白色之间?

宇宙中的黑与白之间是什么?

灰色。 

假设我们有值,从负20到正20,在图像中,我们可以使-20变成黑色,+20变成白色,零变成灰色。

如果我们这样做,它看起来就像这样:

所以这里我们向您展示高斯噪声的图像。

只是噪音,所以如果有一个非常小的sigma,你几乎看不到这只是一个不变的灰色。

随着我们让Sigma变得越来越大,你开始看到越来越多的斑点。

这就是效果,它只是一个加到图像上的噪声函数。

应用高斯噪声 

给定一个图像,你知道它的大小是图像的大小,你可以生成一个同样大小的噪声图像通过把它传递给randn函数。

该噪声图像中的值通常分布在零附近。 标准偏差为1。

将这些生成的值乘以2时会发生什么?这对分配结果有何影响? 

>> noise = randn(size(img)) .*2;

正确答案:它只会在x轴延伸:

请注意,我们只是将这些值相乘。

将一组正态分布数乘以一个值,有效地改变了它们所得到的分布的标准差。

现在为什么知道这一点很重要?

请记住,randn函数生成的标准偏差值为1,而我们使用的图像的类型为uint8,范围从0到255。

randn函数的结果直接添加到图像时,您认为会发生什么?让我们来看看,是时候使用新图像了。

>> img = imread('saturn.png');
>> imshow(img);

运行代码,我们得到:

如果你仔细观察,你将能够看到三个卫星和一个阴影。

现在我们生成噪声图像并将其添加到原始图像中。

>> img = imread('saturn.png');
>> imshow(img);
>>
>> noise = randn(size(img));
>> output = img + noise;
>> imshow(output);

运行结果:

没什么不同,是吧?

这是因为与图像相比,randn函数生成的值非常小。

让我们把这些值放大。

>> img = imread('saturn.png');
>> imshow(img);
>>
>> noise = randn(size(noise)) .* 25;
>> output = img + noise;
>> imshow(output);

运行代码,得到:

我们再增加一点怎么样? .* 50

更多。.* 100

现在很难看到卫星,不是吗? 

图像处理需注意的地方

我并没有在上一张图片中说我们的图片会是什么样的范围。

记得我告诉过你一个图像可能会从0到1,从最暗的黑色到最亮的白色。

如果我图像值的范围控制在0到1,我有个Sigma的值是2的话, 你会发现在整个图像得到白色的。

然而,当我回到这里时,Sigma的值为2只是一个小变化。

 而Sigma的值为64是一个很大的变化。为什么?

在这个图像中,我们有这样的概念,减去127为黑色,加上128为白色。

当我们根据强度来讨论图像中的噪声量时,它必须与图像整体范围有关。

所以在图像中使用双精度的另一个原因:

把它们看成是从0到1,然后我们可以讨论Sigma,你知道0.1。嗯,这是从黑色到白色的十分之一。

如果你想任意使用0到255这样的图像。你可以这么做:首先,使用0.0到255.0,使用浮点数。

在使用0到1的图像情况下的是0.1,在使用0到255图像是25的。

对,因为我已经把整个都拉长了,所以你必须担心Sigma相对于你的图像的整个范围的大小。

当你去显示图像时,尽力去了解你的图像的数字。因为现在你必须告诉机器,我有这个图像。你想要如何显示它?

Matlab有很多显示图像的方法。如果你有imshow函数,我认为它实际上来自图像处理工具箱。

你可以用这种方式显示它你会告诉它低的值和高的值。它会显示,任何低于黑色的值,任何高于白色的值。

你也可以用imshow给它一个空数组。Matlab会自动为您缩放图像。

 还有另一个名为imagesc的功能,用于图像比例。这是一个更老的功能。

 它不在图像处理工具箱中,它也会显示它。

 不要在如何显示图像和如何使用图像之间纠结。

 您只需将其标准化以显示它,而不是为了使用它进行计算。

1 到 9 的文章介绍机器视觉和图像处理相关方法,继续前进,下面还会有更酷的技术值得你学习。


——学会编写自己的代码,才能练出真功夫。

这篇关于2.图像作为函数 | Sigma对高斯噪声的影响、应用高斯噪声、图像处理注意事项_9的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/757965

相关文章

Python中help()和dir()函数的使用

《Python中help()和dir()函数的使用》我们经常需要查看某个对象(如模块、类、函数等)的属性和方法,Python提供了两个内置函数help()和dir(),它们可以帮助我们快速了解代... 目录1. 引言2. help() 函数2.1 作用2.2 使用方法2.3 示例(1) 查看内置函数的帮助(

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

Python中bisect_left 函数实现高效插入与有序列表管理

《Python中bisect_left函数实现高效插入与有序列表管理》Python的bisect_left函数通过二分查找高效定位有序列表插入位置,与bisect_right的区别在于处理重复元素时... 目录一、bisect_left 基本介绍1.1 函数定义1.2 核心功能二、bisect_left 与

Python使用Tkinter打造一个完整的桌面应用

《Python使用Tkinter打造一个完整的桌面应用》在Python生态中,Tkinter就像一把瑞士军刀,它没有花哨的特效,却能快速搭建出实用的图形界面,作为Python自带的标准库,无需安装即可... 目录一、界面搭建:像搭积木一样组合控件二、菜单系统:给应用装上“控制中枢”三、事件驱动:让界面“活”

java中BigDecimal里面的subtract函数介绍及实现方法

《java中BigDecimal里面的subtract函数介绍及实现方法》在Java中实现减法操作需要根据数据类型选择不同方法,主要分为数值型减法和字符串减法两种场景,本文给大家介绍java中BigD... 目录Java中BigDecimal里面的subtract函数的意思?一、数值型减法(高精度计算)1.

C++/类与对象/默认成员函数@构造函数的用法

《C++/类与对象/默认成员函数@构造函数的用法》:本文主要介绍C++/类与对象/默认成员函数@构造函数的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录名词概念默认成员函数构造函数概念函数特征显示构造函数隐式构造函数总结名词概念默认构造函数:不用传参就可以

C++类和对象之默认成员函数的使用解读

《C++类和对象之默认成员函数的使用解读》:本文主要介绍C++类和对象之默认成员函数的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、默认成员函数有哪些二、各默认成员函数详解默认构造函数析构函数拷贝构造函数拷贝赋值运算符三、默认成员函数的注意事项总结一

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹

Python中OpenCV与Matplotlib的图像操作入门指南

《Python中OpenCV与Matplotlib的图像操作入门指南》:本文主要介绍Python中OpenCV与Matplotlib的图像操作指南,本文通过实例代码给大家介绍的非常详细,对大家的学... 目录一、环境准备二、图像的基本操作1. 图像读取、显示与保存 使用OpenCV操作2. 像素级操作3.

C/C++的OpenCV 进行图像梯度提取的几种实现

《C/C++的OpenCV进行图像梯度提取的几种实现》本文主要介绍了C/C++的OpenCV进行图像梯度提取的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录预www.chinasem.cn备知识1. 图像加载与预处理2. Sobel 算子计算 X 和 Y