怎样用Matlab循环编程实现均值滤波算法,采用3*3的窗口
用MATLAB编程,实现均值滤波,必须用循环,是3*3的窗口,很急啊,周五早上就考试了我要详细的编码...
用MATLAB编程,实现均值滤波,必须用循环,是3*3的窗口,很急啊,周五早上就考试了
我要详细的编码 展开
我要详细的编码 展开
1个回答
展开全部
随便写了一个方法,没优化,运行速度有点慢。对于图像范围边界,只跟图像内部点做均值。
clear all
clc
A=imread('manuo1.jpg');
A=im2double(A);
subplot(1,2,1)
imshow(A);
[line,row]=size(A);
lines=0;
rows=0;
linee=0;
rowe=0;
temp=0;
B=[];
for i=1:1:line
for j=1:1:row
lines=i-1;
linee=i+1;
rows=j-1;
rowe=j+1;
if i==1
lines=1;
linee=2;
end
if i==line
lines=line-1;
linee=line;
end
if j==1
rows=1;
rowe=2;
end
if j==row
rows=row-1;
rowe=row;
end
temp=0;
for m=lines:1:linee
for n=rows:1:rowe
temp=temp+A(m,n);
end
end
B(i,j)=temp/((linee-lines+1)*(rowe-rows+1));
end
end
subplot(1,2,2)
imshow(B);
clear all
clc
A=imread('manuo1.jpg');
A=im2double(A);
subplot(1,2,1)
imshow(A);
[line,row]=size(A);
lines=0;
rows=0;
linee=0;
rowe=0;
temp=0;
B=[];
for i=1:1:line
for j=1:1:row
lines=i-1;
linee=i+1;
rows=j-1;
rowe=j+1;
if i==1
lines=1;
linee=2;
end
if i==line
lines=line-1;
linee=line;
end
if j==1
rows=1;
rowe=2;
end
if j==row
rows=row-1;
rowe=row;
end
temp=0;
for m=lines:1:linee
for n=rows:1:rowe
temp=temp+A(m,n);
end
end
B(i,j)=temp/((linee-lines+1)*(rowe-rows+1));
end
end
subplot(1,2,2)
imshow(B);
东莞大凡
2024-08-07 广告
2024-08-07 广告
OpenCV标定板是东莞市大凡光学科技有限公司在相机标定中常用的工具。它通常由黑白格点按一定规则排列在平面上组成,如棋盘格或圆形格等。在相机标定时,将标定板置于不同位置和姿态下拍摄图像,利用OpenCV库中的函数检测标定板上的角点或圆心,进...
点击进入详情页
本回答由东莞大凡提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询