均值滤波(matlab)
生活随笔
收集整理的這篇文章主要介紹了
均值滤波(matlab)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
**均值濾波:**在圖像上對目標像素給一個模板,該模板包括了其周圍的臨近像素,再用模板中的全體像素的平均值來代替原來像素值。
缺點:均值濾波本身存在著固有的缺陷,即它不能很好地保護圖像細節,在圖像去噪的同時也破壞了圖像的細節部分,從而使圖像變得模糊,不能很好地去除噪聲點。
matlab自帶函數:
另一種方法:
x=imread('G:\matlab\1.jpg');%需要過濾的圖像 n=3; %模板大小 [height, width]=size(x); %獲取圖像的尺寸(n小于圖片的寬高) figure; imshow(x);%顯示原圖 % x = padarray(x,[3,3]); %對圖像邊緣進行填充 x = imnoise(x,'salt & pepper'); %加入椒鹽噪聲 figure; imshow(x); %顯示加入噪聲后的圖片 x1=double(x); %數據類型轉換 x2=x1; %轉換后的數據賦給x2 for i=1:height-n+1 for j=1:width-n+1 c=x1(i:i+(n-1),j:j+(n-1)); %在x1中從頭取模板大小的塊賦給c e=c(1,:); %e中存放是c矩陣的第一行 for u=2:n %將c中的其他行元素取出來接在e后使e為一個行矩陣 e=[e,c(u,:)]; end s=sum(e); %取一行的和 x2(i+(n-1)/2,j+(n-1)/2)=s/(n*n); %將模板各元素的均值賦給模板中心位置的元素 end end d=uint8(x2); %未被賦值的元素取原值 figure; imshow(d); %顯示過濾圖片 C=rgb2gray(x); %灰度處理,灰度處理后的圖像是二維矩陣 A=fspecial('average',[n,n]); %matlab中自帶值濾波函數 b=imfilter(C,A); figure; imshow(b); %顯示過濾后的灰度圖片原圖:
加入噪聲后圖:
程序降噪圖:
自帶函數降噪圖:
總結
以上是生活随笔為你收集整理的均值滤波(matlab)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库系统教程第三版施伯乐
- 下一篇: 图像处理中调用matlab自带均值滤波、