MATLAB程序填空题

下面是某同学针对图像被灰度值为255的白点噪声干扰而在Matlab平台编写的利用3*3模板完成数字图像选择性中值滤波的程序。阅读并补充完整程序。 中值滤波Matlab程序如下:

F=[1 1 1 8 7 4; 2 255 2 3 3 3; 3 3 255 4 3 3; 3 3 3 255 4 6; 3 3 4 5 255 8; 2 3 4 6 7 8]%加载输入图像

G=F; imshow(uint8(F));%显示原图像

[m,n]=size(F); %提取原图像F空间分辨率,并存为变量m和n temp=0; %两个数交换时,临时存储数据所用变量 threshold=200; %设置阈值 for i=2:m-1 %设置行循环变量i及取值范围 for j=2:n-1 %设置列循环变量j及取值范围 if F(i,j)> threshold %阈值判断执行 a=[F(i-1,j-1),F(i-1,j),F(i-1,j+1),F(i,j-1),F(i,j),F(i,j+1),F(i+1,j-1),F(i+1,j),F(i+1,j+1)]; %将9个数据组成数组 %%%%利用冒泡法按从大到小排序 for u=1:8
%%%%%%%%%%%%%%%%%%%%%%%语句1begin (1分) %%%%%%%%%%%%%%%%%%%%%%%语句1 end
if a(v)<a(v+1)
%%%%%%%%%%%%%%%%%%%%%%%语句2begin (2分) %%%%%%%%%%%%%%%%%%%%%%%语句2 end %%%%%%%%%%%%%%%%%%%%%%%语句3begin (2分) %%%%%%%%%%%%%%%%%%%%%%%语句3 end %%%%%%%%%%%%%%%%%%%%%%%语句4begin (2分) %%%%%%%%%%%%%%%%%%%%%%%语句4 end end %判断结束
end %循环结束 end %循环结束
%%%%冒泡法排序结束
G(i,j)=a(5) ; %用中值替换结果图像G中相应的像素灰度值 end % 阈值判断执行结束
end %循环结束 end %循环结束 imshow(uint8(G),[]); %显示中值滤波的结果图像

中值滤波Matlab程序如下:

F=[1 1 1 8 7 4; 2 255 2 3 3 3; 3 3 255 4 3 3; 3 3 3 255 4 6; 3 3 4 5 255 8; 2 3 4 6 7 8]; %加载输入图像

G=F; 
imshow(uint8(F)); %显示原图像

[m,n]=size(F); %提取原图像F空间分辨率,并存为变量m和n 
temp=0; %两个数交换时,临时存储数据所用变量 
threshold=200; %设置阈值 

for i=2:m-1 %设置行循环变量i及取值范围 
    for j=2:n-1 %设置列循环变量j及取值范围 
        if F(i,j)> threshold %阈值判断执行 
            a=[F(i-1,j-1),F(i-1,j),F(i-1,j+1),F(i,j-1),F(i,j),F(i,j+1),F(i+1,j-1),F(i+1,j),F(i+1,j+1)]; %将9个数据组成数组 
            %%%%利用冒泡法按从大到小排序 
            for u=1:8
                for v=1:9-u
                    if a(v)<a(v+1)
                        temp=a(v);
                        a(v)=a(v+1);
                        a(v+1)=temp;
                    end
                end
            end
            %判断结束
            %%%%%冒泡法排序结束
            
            G(i,j)=a(5) ; %用中值替换结果图像G中相应的像素灰度值 
        end % 阈值判断执行结束
    end %循环结束 
end %循环结束 

imshow(uint8(G),[]); %显示中值滤波的结果图像

其中,需要补充完整的代码部分为:

语句1:

for v=1:8

语句2:

temp=a(v);

语句3:

a(v)=a(v+1);

语句4:

a(v+1)=temp;