数字图像处理:图像的基本运算
实验目的:
1、掌握图像加减运算的运用。
2、掌握分段线性点运算的运用。

实验内容及要求:
1、把一幅图像加上高斯噪声,再通过100次相加求平均的方法去除噪声。
参考代码如下:(找到实验图像并完成实验)
2、已知一幅受“椒盐”噪声干扰的图像,通过减法运算提取出噪声。
3、将胸腔的断层扫描图像灰度级开窗,分别显示骨骼、肌肉、肺部。
参考代码如下:
(1)请补充代码,读入实验图片并转换成灰度图像。
(2)给出实验结果。
(3)列出分段函数式,并结合实验结果画图分析。

实验过程(记录):
I=imread('yb.tif');
J=imnoise(I,'gaussian',0,0.02);
subplot(1,2,1),imshow(I);title('原始图像');
subplot(1,2,2),imshow(J);title('加噪声的图像');
K=zeros(135,152);
for i=1:100
J=imnoise(I,'gaussian',0,0.02);
J1=im2double(J);
K=K+J1;
end
K=K/100;
figure;imshow(K);title('求平均后的图像');


I=imread('lenna1.jpg');
J=imread('lenna.jpg');
K=imsubtract(I,J);
K1=255-K;
figure;imshow(I);title('有噪声的图像');
figure;imshow(J);title('原始图像');
figure;imshow(K1);title('提取的图像');



f1= imread('xq.jpg');
f = rgb2gray(f1);
subplot(2,2,1),imshow(f),title('(a)Original Image');
f=double(f);
[m,n]=size(f);
a=min(f(:));
b=max(f(:));
for i=1:m
for j=1:n
if(f(i,j)<210)
g(i,j)=0;
else
g(i,j)=255/(255-210)*(f(i,j)-210)+0;
end
end
end
g=uint8(g);
subplot(2,2,2),imshow(g),title('(b)Bone');
clear g;
for i=1:m
for j=1:n
if(f(i,j)<160)
g(i,j)=0;
else if(f(i,j)>210)
g(i,j)=0;
else
g(i,j)=255/(210-160)*(f(i,j)-160)+0;
end
end
end
end
g=uint8(g);
subplot(2,2,3),imshow(g),title('(c)Muscle');
clear g;
for i=1:m
for j=1:n
if(f(i,j)<45)
g(i,j)=0;
else if(f(i,j)>160)
g(i,j)=0;
else
g(i,j)=255/(160-45)*(f(i,j)-45)+0;
end
end
end
end
g=uint8(g);
subplot(2,2,4),imshow(g),title('(d)Lung');


imnoise 函数说明
在MATLAB中,可以使用imnoise函数给一幅图像添加噪声。
例子:g = imnoise(f, type, parameters)
参数说明:
输出:g是添加噪声之后的图像。
输入:f是原图像,type是加入的噪声类型,parameters是噪声的一些参数。