向具有特定均值的图像添加泊松噪声。
Adding poisson noise to an image with specific mean.
如何在 Matlab 中添加具有特定泊松分布均值的泊松噪声?下面的代码给了我一个全白的图像。
img = im2double(phantom(512));
figure; imshow(img)
mean = 1e9;
R = poissrnd(mean, [512, 512]);
J = img + R;
figure; imshow(J);
你这样做的方式很好。您的平均值是 1000000000,因此数字非常大。
但是要显示带有自动缩放颜色图的图像,请执行以下操作:
img = im2double(phantom(512));
figure; imshow(img,[])
mean = 1e9;
R = poissrnd(mean, [512, 512]);
J = img + R;
figure; imshow(J,[]);
注意方括号。
通常,在向图像添加泊松噪声时,您希望使用像素值作为平均值(在适当缩放之后)。这将更接近图像采集中的泊松噪声。
例如,假设您的图像在 im2double
之后的 0-1 范围内,是在光子受限显微镜中采集的。假设缩放是这样的,即一个像素上的 1e9 个光子表示为像素值 1。为了在这里模拟光子噪声,这个(无噪声)值为 1 的像素将有一个(噪声)值 poissrnd(1e9)/1e9
。另一个值为 0.5 的像素将具有 poissrnd(1e9*0.5)/1e9
.
的值
在 Image Processing Toolbox 中有一个函数 imnoise
可以在调用时执行此操作,如下所示:
img = imnoise(img,'poisson');
此函数使用 1e12 的缩放比例。您想要 1e9 的缩放比例,所以您必须将图像除以 1e3:
img = imnoise(img/1e3,'poisson')*1e3;
如何在 Matlab 中添加具有特定泊松分布均值的泊松噪声?下面的代码给了我一个全白的图像。
img = im2double(phantom(512));
figure; imshow(img)
mean = 1e9;
R = poissrnd(mean, [512, 512]);
J = img + R;
figure; imshow(J);
你这样做的方式很好。您的平均值是 1000000000,因此数字非常大。
但是要显示带有自动缩放颜色图的图像,请执行以下操作:
img = im2double(phantom(512));
figure; imshow(img,[])
mean = 1e9;
R = poissrnd(mean, [512, 512]);
J = img + R;
figure; imshow(J,[]);
注意方括号。
通常,在向图像添加泊松噪声时,您希望使用像素值作为平均值(在适当缩放之后)。这将更接近图像采集中的泊松噪声。
例如,假设您的图像在 im2double
之后的 0-1 范围内,是在光子受限显微镜中采集的。假设缩放是这样的,即一个像素上的 1e9 个光子表示为像素值 1。为了在这里模拟光子噪声,这个(无噪声)值为 1 的像素将有一个(噪声)值 poissrnd(1e9)/1e9
。另一个值为 0.5 的像素将具有 poissrnd(1e9*0.5)/1e9
.
在 Image Processing Toolbox 中有一个函数 imnoise
可以在调用时执行此操作,如下所示:
img = imnoise(img,'poisson');
此函数使用 1e12 的缩放比例。您想要 1e9 的缩放比例,所以您必须将图像除以 1e3:
img = imnoise(img/1e3,'poisson')*1e3;