日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab调和均值滤波_MatLab 自编的 均值滤波、中值滤波、高斯滤波 图像处理函数...

發布時間:2023/12/31 循环神经网络 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab调和均值滤波_MatLab 自编的 均值滤波、中值滤波、高斯滤波 图像处理函数... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

雖然matlab里面有這些函數,但是要求自己編寫,計算機視覺上有這個實驗,是別人編寫的。別人到網上找了半天才零散的找到一些碎片,整理以后發上來的!

MatLab自編的均值濾波、中值濾波、高斯濾波 圖像處理函數。

%自編的均值濾波函數。x是需要濾波的圖像,n是模板大小(即n×n)

function d=avefilt(x,n)

a(1:n,1:n)=1;?? %a即n×n模板,元素全是1

p=size(x);?? %輸入圖像是p×q的,且p>n,q>n

x1=double(x);

x2=x1;

%A(a:b,c:d)表示A矩陣的第a到b行,第c到d列的所有元素

for i=1:p(1)-n+1

for j=1:p(2)-n+1

c=x1(i:i+(n-1),j:j+(n-1)).*a; %取出x1中從(i,j)開始的n行n列元素與模板相乘

s=sum(sum(c));???????????????? %求c矩陣(即模板)中各元素之和

x2(i+(n-1)/2,j+(n-1)/2)=s/(n*n); %將模板各元素的均值賦給模板中心位置的元素

end

end

%未被賦值的元素取原值

d=uint8(x2);

%自編的中值濾波函數。x是需要濾波的圖像,n是模板大小(即n×n)

function d=midfilt(x,n)

p=size(x);?? %輸入圖像是p×q的,且p>n,q>n

x1=double(x);

x2=x1;

for i=1:p(1)-n+1

for j=1:p(2)-n+1

c=x1(i:i+(n-1),j:j+(n-1)); %取出x1中從(i,j)開始的n行n列元素,即模板(n×n的)

e=c(1,:);????? %是c矩陣的第一行

for u=2:n

e=[e,c(u,:)];???? %將c矩陣變為一個行矩陣

end

mm=median(e);????? %mm是中值

x2(i+(n-1)/2,j+(n-1)/2)=mm;?? %將模板各元素的中值賦給模板中心位置的元素

end

end

%未被賦值的元素取原值

d=uint8(x2);

%自編的高斯濾波函數,S是需要濾波的圖象,n是均值,k是方差

function d=gaussfilt(k,n,s)

Img = double(s);

n1=floor((n+1)/2);%計算圖象中心

for i=1:n

for j=1:n

b(i,j) =exp(-((i-n1)^2+(j-n1)^2)/(4*k))/(4*pi*k);

end

end

%生成高斯序列b。

Img1=conv2(Img,b,'same'); %用生成的高斯序列卷積運算,進行高斯濾波

d=uint8(Img1);

%此為程序主文件,包含主要功能單元,以及對子函數進行調用try

%實驗步驟一:彩色、灰度變換

h=imread('photo.jpg'); %讀入彩×××片

c=rgb2gray(h); %把彩×××片轉化成灰度圖片,256級

figure,imshow(c),title('原始圖象'); %顯示原始圖象

g=imnoise(c,'gaussian',0.1,0.002); %加入高斯噪聲

figure,imshow(g),title('加入高斯噪聲之后的圖象'); %顯示加入高斯噪聲之后的圖象

%實驗步驟二:用系統預定義濾波器進行均值濾波

n=input('請輸入均值濾波器模板大小\n');

A=fspecial('average',n); %生成系統預定義的3X3濾波器

Y=filter2(A,g)/255;?????????? %用生成的濾波器進行濾波,并歸一化

figure,imshow(Y),title('用系統函數進行均值濾波后的結果'); %顯示濾波后的圖象

%實驗步驟三:用自己的編寫的函數進行均值濾波

Y2=avefilt(g,n);???? %調用自編函數進行均值濾波,n為模板大小

figure,imshow(Y2),title('用自己的編寫的函數進行均值濾波之后的結果'); %顯示濾波后的圖象

%實驗步驟四:用Matlab系統函數進行中值濾波

n2=input('請輸入中值濾波的模板的大小\n');

Y3=medfilt2(g,[n2 n2]);?? %調用系統函數進行中值濾波,n2為模板大小

figure,imshow(Y3),title('用Matlab系統函數進行中值濾波之后的結果'); %顯示濾波后的圖象

%實驗步驟五:用自己的編寫的函數進行中值濾波

Y4=midfilt(g,n2);????? %調用自己編寫的函數進行中值濾波,

figure,imshow(Y4),title('用自己編寫的函數進行中值濾波之后的結果');

%實驗步驟六:用matlab系統函數進行高斯濾波

n3=input('請輸入高斯濾波器的均值\n');

k=input('請輸入高斯濾波器的方差\n');

A2=fspecial('gaussian',k,n3);????? %生成高斯序列

Y5=filter2(A2,g)/255;????????????? %用生成的高斯序列進行濾波

figure,imshow(Y5),title('用Matlab函數進行高斯濾波之后的結果');??? %顯示濾波后的圖象

%實驗步驟七:用自己編寫的函數進行高斯濾波

Y6=gaussfilt(n3,k,g); %調用自己編寫的函數進行高斯濾波,n3為均值,k為方差

figure,imshow(Y6),title('用自編函數進行高斯濾波之后的結果');????? %顯示濾波后的圖象

catch?????????? %捕獲異常

disp(lasterr);???? %如果程序有異常,輸出

end

總結

以上是生活随笔為你收集整理的matlab调和均值滤波_MatLab 自编的 均值滤波、中值滤波、高斯滤波 图像处理函数...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。