GitXplorerGitXplorer
e

ImageNoise

public
1 stars
0 forks
0 issues

Commits

List of commits on branch master.
Unverified
2527a5ecbbc640ccfbd0d95765e80c0e2334babe

add LICENSE

eehds committed 8 years ago
Unverified
fc2394c1aaae680ce1308f20fbaf33b159dd4f72

Merge branch 'master' of https://github.com/Ds-Hale/ImageNoise

eehds committed 8 years ago
Unverified
b6619cf2caa274ee171e956d5e4a68c212a55a09

first commit

eehds committed 8 years ago
Unverified
07c2469be50cfe5f7a49e5b588e3dc66baa14291

Update README.md

eehds committed 8 years ago
Unverified
6424744cb2dc7e30723f0975632a9eee17215e7e

Create README.md

eehds committed 8 years ago

README

The README file for this repository.

ImageNoise使用说明

本代码是利用图片叠加的原理消除噪声的实验代码 原理

原理说明

图像的加法可用于平均以减少和去除图像采集中混入的噪声,在采集中实际图像的时候,由于各种不同的原因,常会有一些干扰或噪声混入到最后采集的图像中。从这个意义上来说,实际采集到的图像g_i (x,y可看做是由原始场景图像f(x,y)和噪声图像叠加而成的,即

g(x,y)=f(x,y)+ε(x,y)

图像的加法可用于平均以减少和去除图像采集中混入的噪声,在采集中实际图像的时候,由于各种不同的原因,常会有一些干扰或噪声混入到最后采集的图像中。从这个意义上来说,实际采集到的图像g_i (x,y可看做是由原始场景图像f(x,y)和噪声图像叠加而成的,即

g(x,y)=f(x,y)+ε(x,y)

那么可以证明新的图像的期望值为

E{¯g(x,y)}=f(x,y)

如果考虑新图像和噪声图像各自的均方差的关系,则 σ_(¯g(x,y))=√(1/M)×σ_(e(x,y))

可见随着平均图像数量M的增加,噪声在每个像素的位置(x,y)的影响越来越小

 [高斯噪声原理](https://en.wikipedia.org/wiki/Box%E2%80%93Muller_transform)
#include <cstdlib>
#include <cmath>
#include <limits>
double generateGaussianNoise(double mu, double sigma)
{
	const double epsilon = std::numeric_limits<double>::min();
	const double two_pi = 2.0*3.14159265358979323846;

	static double z0, z1;
	static bool generate;
	generate = !generate;

	if (!generate)
	   return z1 * sigma + mu;

	double u1, u2;
	do
	 {
	   u1 = rand() * (1.0 / RAND_MAX);
	   u2 = rand() * (1.0 / RAND_MAX);
	 }
	while ( u1 <= epsilon );

	z0 = sqrt(-2.0 * log(u1)) * cos(two_pi * u2);
	z1 = sqrt(-2.0 * log(u1)) * sin(two_pi * u2);
	return z0 * sigma + mu;
}

使用说明

  1. 下载源码

  2. 命令行切换到打开build目录

  3. 输入

    ImageNoise.exe image.jpg 100

(第二个参数为图片名称,第三个参数为加噪图片数量) 4.结果 结果展示

  1. 目录下会生成一个output100.jpg的文件即为输出文件

原始图片 原始

加噪图片 加噪

结果图片 结果