您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 燕山大学图像处理课后作业之超限像素平滑法和k个邻点平均法
一、超限像素平滑法I=imread('m3.png');I=rgb2gray(I);subplot(2,2,1),imshow(I);[m,n]=size(I);l=3;%模版尺寸L=ones(l);%l*l模版S=ones(m-l+1,n-l+1);fori=1:m-l+1forj=1:n-l+1S(i,j)=1/(l*l)*sum(sum(I(i:i+l-1,j:j+l-1)));%求平均endendsubplot(2,2,2),imshow(S,[]);P=imnoise(I,'salt&pepper',0.05);%加入椒盐躁声subplot(2,2,3),imshow(P);T=30;%设置阈值A=P;fori=1:m-2forj=1:n-2if(abs(P(i,j)-S(i,j))T)A(i,j)=P(i,j);elseA(i,j)=S(i,j);endendendsubplot(2,2,4),imshow(A);思路:获取原始图像的灰度图与大小(m,n),假设一个方阵模版和(m-1,n-1)的矩阵,将方阵在图像上移动,每移动一次进行一次方阵大小范围内的平均值运算,得到由平均值组成的矩阵S,引入椒盐噪声函数,设定滤波阈值T,当灰度值与平均值的差大于阈值时,该点像素值保持不变,否则,取平均值。程序结果:体会:模版方阵在图像上移动,实质上是卷积运算,如何让模版方阵在图像移动,for语句的循环条件就需要计算准确。后面的滤波使用选择语句即可。二、灰度最相近的K个邻点平均法I=imread('m3.png');I=rgb2gray(I);I=im2double(I);[m,n]=size(I);fori=2:m-1forj=2:n-1I1=I(i-1,j-1)-I(i,j);%求邻域内的值与中心值的差值I2=I(i-1,j)-I(i,j);I3=I(i-1,j+1)-I(i,j);I4=I(i,j-1)-I(i,j);I5=I(i,j)-I(i,j);I6=I(i,j+1)-I(i,j);I7=I(i+1,j-1)-I(i,j);I8=I(i+1,j)-I(i,j);I9=I(i+1,j+1)-I(i,j);G=[I1,I2,I3,I4,I5,I6,I7,I8,I9];%将差值保存在数组里A=abs(G);%取绝对值H=[1,2,3,4,5,6,7,8,9;A];fors=1:9%使用for循环进行排序forg=s+1:9ifH(2,s)H(2,g)MID=H(1,s);H(1,s)=H(1,g);H(1,g)=MID;mid=H(2,s);H(2,s)=H(2,g);H(2,g)=mid;endendendK(1)=A(H(1,1));K(2)=A(H(1,2));K(3)=A(H(1,3));K(4)=A(H(1,4));K(5)=A(H(1,5));K(6)=A(H(1,6));K(7)=A(H(1,7));ave=(K(1)+K(2)+K(3)+K(4)+K(5)+K(6)+K(7))/7;%排序后的结果存入K中,取差值的前七个求平均值X(i,j)=ave;endendE=im2uint8(X);subplot(1,2,1),imshow(I);subplot(1,2,2),imshow(E);效果图:体会:程序的关键在于,取邻域和排序,排序之后,差值有九个,取K值,较小的K值使噪声方差下降较小,但保持细节效果较好;而较大的K值平滑噪声较好,但会使图像边缘模糊。
本文标题:燕山大学图像处理课后作业之超限像素平滑法和k个邻点平均法
链接地址:https://www.777doc.com/doc-7290168 .html