Opencv代码:
% Gaussian noise
Mat gaussian_noise = img.clone();
randn(gaussian_noise,128,30);
% Salt and pepper noise
Mat saltpepper_noise = Mat::zeros(img.rows, img.cols,CV_8U);
randu(saltpepper_noise,0,255);
Mat black = saltpepper_noise < 30;
Mat white = saltpepper_noise > 225;
Mat saltpepper_img = img.clone();
saltpepper_img.setTo(255,white);
saltpepper_img.setTo(0,black);
我试图从opencv代码博客转换为matlab代码博客,但我不知道该怎么做。我从未使用过opencv,所以我做不到。你能帮我吗。
算法是
首先,您会生成随机噪声以成像。
其次,如果黑噪声<10,白噪声> 245
设置255白色和0黑色。您可以查看opencv代码。
我试过的代码:
% I generated random gaussian noise
I = imread('pears.png');
J = rgb2gray(I);
p3 = 0;
p4 = 0.05;
J = im2double(J);
b = J + sqrt(p4)*randn(size(J))+p3;
imshow(b)
dim = size(I);
[m, n] = size(I);
saltpepper_noise=zeros((m, n));
saltpepper_noise=rand(m,n); #creates a uniform random variable from 0 to 1
for i in range(0,m):
for j in range(0,n):
if saltpepper_noise[i,j]<=0.5:
saltpepper_noise[i,j]=0
else:
saltpepper_noise[i,j]=255
..................................