matlab_数字图像处理代码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

%%%%%% 求对比度%%%%%%

clear;

clc;

[filename,pathname]=uigetfile({'*jpg;*.bmp;*.jpeg'},'load?image'); fpath=fullfile(pathname,filename);

A=imread(fpath);

figure(1);

imshow(A);

title('原图像')

img=rgb2gray(A);

figure(2);

imshow(img);

title('灰度后的');

img1=imnoise(img,'salt & pepper',0.05); %加入椒盐躁声

figure(3);

imshow(img1);

title('椒盐后的图像');

%%% K近邻域滤椒盐噪声%%% 3*3

%%% 找出与f(i,j)相近的像素值这里利用做差排序找出AAAA1=img1;

AAAA1=double(AAAA1);

%%%得到椒盐噪声图像

[m,n]=size(AAAA1);

for i=2:m-1

for j=2:n-1

ASD1=[AAAA1(i-1,j-1) AAAA1(i-1,j) AAAA1(i-1,j+1) ...

AAAA1(i,j-1) AAAA1(i,j) AAAA1(i,j+1) ...

AAAA1(i+1,j-1) AAAA1(i+1,j) AAAA1(i+1,j+1)];

aa=ASD1; %%随机设定的一个数组

b=AAAA1(i,j); %%取参照值

a=aa(:); %%将给定数组化为一维的

ab=(a(:)-b)'; %%将数组a与b做差abc=abs(ab);

abc=sort(abc); %%差值取绝对值并排序

[as1 as11] =find(abs((a(:)-b))==abc(1,1));

as=[as1 as11];

if ~isempty(abc(abc(:)~=abc(1,1)))

if ~isempty(abc)

abc1=abc(abc(:)~=abc(1,1));

[as2 as22]=find(abs((a(:)-b))==abc1(1,1));

as=[as1 as11;as2 as22];

end

end

if ~isempty(abc1(abc1(:)~=abc1(1,1)))

if ~isempty(abc1)

abc2=abc1(abc1(:)~=abc1(1,1));

[as3 as33]=find(abs((a(:)-b))==abc2(1,1));

as=[as1 as11;as2 as22;as3 as33];

end

end

if ~isempty(abc2(abc2(:)~=abc2(1,1)))

if ~isempty(abc2)

abc3=abc2(abc2(:)~=abc2(1,1));

[as4 as44]=find(abs((a(:)-b))==abc3(1,1));

as=[as1 as11;as2 as22;as3 as33;as4 as44];

end

end

if ~isempty(abc3(abc3(:)~=abc3(1,1)))

if ~isempty(abc3)

abc4=abc3(abc3(:)~=abc3(1,1));

[as5 as55]=find(abs((a(:)-b))==abc4(1,1));

as=[as1 as11;as2 as22;as3 as33;as4 as44;as5 as55];

end

end

if ~isempty(abc4(abc4(:)~=abc4(1,1)))

if ~isempty(abc4)

abc5=abc4(abc4(:)~=abc4(1,1));

[as6 as66]=find(abs((a(:)-b))==abc5(1,1));

as=[as1 as11;as2 as22;as3 as33;as4 as44;as5 as55;as6 as66];

end

end

%%%% as即是与b值相近的值的坐标包括和b相等的(这里是与b 值相差为六种值的情况不一定是六个值可能等于也可能大于%%%% 将以下坐标的值取第二个到第六个即是与b值相近的5个)

result=zeros(1,(length(as)-1));

for VB=2:6

result(VB-1)=a(as(VB,1));

end %%%求前五个的均值

AVERAGE=sum(result(:))/5;

AAAA1(i,j)=AVERAGE;

end

end

figure(9)

imshow(uint8(AAAA1));

title('K近邻域滤椒盐噪声后的图像');

clear;

clc;

I_gray=...

[1 5 255 225 100 200 255 200;...

1 7 254 225 100 10 10 9; ...

3 7 10 100 100 2 9 6;...

3 6 10 10 9 2 8 2;...

2 1 8 8 9

3

4 2;...

1 0 7 8 8 3

2 1;...

1 1 8 8 7

2 2 1;...

2 3 9 8 7 2 2 0]; %%%%%A可以是矩阵也可以是图像

[height,width]=size(I_gray); %测量图像尺寸参数

p=zeros(1,256); %预创建存放灰度出现概率的向量

for i=1:height

for j=1:width

p(I_gray(i,j) + 1) = p(I_gray(i,j) + 1) + 1;

end

end

s=zeros(1,256);

s(1)=p(1);

for i=2:256

s(i)=p(i) + s(i-1); %统计图像中<每个灰度级像素的累积个数,s(i):0,1,```,i-1

end

for i=1:256

相关文档
最新文档