-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy patharound_mean.m
More file actions
28 lines (28 loc) · 961 Bytes
/
around_mean.m
File metadata and controls
28 lines (28 loc) · 961 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
%%%%%自己写的求邻域均值矩阵的函数
function I1=around_mean(I)
[a,b]=size(I);
I1=zeros(a,b);
for i=1:1:a
for j=1:1:b
if i==1&&j>1&&j<b
I1(i,j)=(I(i,j+1)+I(i,j-1)+I(i+1,j+1)+I(i+1,j)+I(i+1,j-1))/5;
elseif i>1&&i<a&&j==1
I1(i,j)=(I(i-1,j)+I(i+1,j)+I(i-1,j+1)+I(i,j+1)+I(i+1,j+1))/5;
elseif i==a&&j>1&&j<b
I1(i,j)=(I(i,j+1)+I(i,j-1)+I(i-1,j-1)+I(i-1,j)+I(i-1,j+1))/5;
elseif i>1&&i<a&&j==b
I1(i,j)=(I(i-1,j)+I(i+1,j)+I(i-1,j-1)+I(i,j-1)+I(i+1,j-1))/5;
elseif i==1&&j==1
I1(i,j)=(I(i,j+1)+I(i+1,j+1)+I(i+1,j))/3;
elseif i==a&&j==1
I1(i,j)=(I(i,j+1)+I(i-1,j+1)+I(i-1,j))/3;
elseif i==a&&j==b
I1(i,j)=(I(i,j-1)+I(i-1,j)+I(i-1,j-1))/3;
elseif i==1&&j==b
I1(i,j)=(I(i,j-1)+I(i+1,j)+I(i+1,j-1))/3;
else
I1(i,j)=(I(i-1,j-1)+I(i,j-1)+I(i+1,j-1)+I(i-1,j)+I(i+1,j)+I(i-1,j+1)+I(i,j+1)+I(i+1,j+1))/8;
end
end
end%生成各点领域均值矩阵
end