1、图像滤波
步骤1:使用fspecial函数创建二维滤波器
步骤2:使用函数imfilter进行滤波
%% 滤波 I = imread(\'cameraman.tif\'); subplot(3,3,1),imshow(I),title(\'原图像\'); % 均值滤波 fs1 = fspecial(\'average\'); J1 = imfilter(I,fs1); subplot(3,3,2),imshow(J1),title(\'average\'); % 圆形领域 fs2 = fspecial(\'disk\'); J2 = imfilter(I,fs2); subplot(3,3,3),imshow(J2),title(\'disk\'); % 高斯 fs3 = fspecial(\'gaussian\'); J3 = imfilter(I,fs3); subplot(3,3,4),imshow(J3),title(\'gaussian\'); % 高斯-拉普拉斯 fs4 = fspecial(\'log\'); J4 = imfilter(I,fs4); subplot(3,3,5),imshow(J4),title(\'log\'); % 拉普拉斯 fs5 = fspecial(\'laplacian\'); J5 = imfilter(I,fs5); subplot(3,3,6),imshow(J5),title(\'laplacian\'); % motion模版 fs6 = fspecial(\'motion\'); J6 = imfilter(I,fs6); subplot(3,3,7),imshow(J6),title(\'motion模版\'); % prewitt模版 fs7 = fspecial(\'prewitt\'); J7 = imfilter(I,fs7); subplot(3,3,8),imshow(J7),title(\'prewitt模版\'); % sobel模版 fs8 = fspecial(\'sobel\'); J8 = imfilter(I,fs8); subplot(3,3,9),imshow(J8),title(\'sobel模版\');
2、图像裁剪
处理结果 = imcrop(原始图像,裁剪区域)
裁剪区域:[xmin, ymin, width, height]
%% 图像裁剪 I = imread(\'cameraman.tif\') [x,y] = size(I); subplot(2,3,1),imshow(I); % 裁剪左上角 J1= imcrop(I,[0,0,100,100]); subplot(2,3,2),imshow(J1); % 裁剪右上角 J2= imcrop(I,[156,0,100,100]); subplot(2,3,3),imshow(J2); % 裁剪左下角 J3= imcrop(I,[0,156,100,100]); subplot(2,3,4),imshow(J3); % 裁剪右下角 J4= imcrop(I,[156,156,100,100]); subplot(2,3,5),imshow(J4); % 裁剪中间 J5= imcrop(I,[128,128,50,50]); subplot(2,3,6),imshow(J5);
3、噪声
(1)噪声
处理结果 = imnoise(原始图像,噪声类型)
(2)高斯噪声
%% 高斯噪声 I = imread(\'lena.jpg\'); subplot(1,2,1),imshow(I); J = imnoise(I,\'gaussian\',0.01,0.1); subplot(1,2,2),imshow(J);
(3)localvar噪声--类型1
目标图像 = imnoise(原始图像,\'localvar\',V)
其中V是与原始图像大小相同的一个数组。
%% localvar噪声类型1 I = imread(\'lena.jpg\'); subplot(1,2,1),imshow(I); J = imnoise(I,\'localvar\',ones(size(I))*0.01); subplot(1,2,2),imshow(J);
(4)localvar噪声--类型2
目标图像 = imnoise(原始图像,\'localvar\',image_intensity,var)
%% localvar噪声类型2 I = imread(\'lena.jpg\'); subplot(1,2,1),imshow(I); J = imnoise(I,\'localvar\',rand(1,100),ones(1,100)); subplot(1,2,2),imshow(J);
(4)泊松噪声
处理结果 = imnoise(原始图像,\'poisson\')
%% 泊松噪声 I = imread(\'lena.jpg\'); subplot(1,2,1),imshow(I); J = imnoise(I,\'poisson\'); subplot(1,2,2),imshow(J);
(5)椒盐噪声
处理结果 = imnoise(原始图像,\'salt&pepper\',d)
其中,d是噪声密度(即包括噪声值的图像区域的备份比),默认噪声密度为0.5。
I = imread(\'lena.jpg\'); subplot(1,2,1),imshow(I); J = imnoise(I,\'salt & pepper\'); subplot(1,2,2),imshow(J);
(6)speckle噪声
处理结果 = imnoise(原始图像,\'speckle\',V)
目标图像 = 原始图像+n*原始图像,其中,n是均值为0,方差为V的均匀分布的随机噪声。
V的默认值是0.04。
I = imread(\'lena.jpg\'); subplot(1,2,1),imshow(I); J = imnoise(I,\'speckle\'); subplot(1,2,2),imshow(J);
请发表评论