線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:4142
推到 Plurk!
推到 Facebook!

matlab 5*5 smooth濾波(平滑)

 
zet0r
一般會員


發表:1
回覆:1
積分:0
註冊:2006-08-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-08-25 01:07:11 IP:222.156.xxx.xxx 未訂閱
想請問依下, 我再寫3*3的平滑濾波時候, 成功了,
但是當我在做5*5的時候, rgb三色做不出來...
如果我把第三層不理他, 只做二維的濾波,
雖然變成gray, 但是卻成功..

想請問依下為什麼會這樣, 程式給我的原因是說, 索引超出範圍.
不曉得有沒有大大可以幫我解答依下. 這邊我是用filter=zeros(1,25); 我用zeros(5,5)也不行...
謝謝大家幫忙!!!!

clear all, close all;
[x,map]=imread('F:\My Documents\3-18.jpg');
figure(1), imshow(x); %make 1 figure to show image.
m=double(x);
[x,y,z]=size(m);
r=zeros(x,y,z);
filter=zeros(1,25);
for i=3;
for o=3:x-2;
for p=3:y-2;
filter(1)=m(o-2,p-2,i);
filter(2)=m(o-1,p-2,i);
filter(3)=m(o,p-2,i);
filter(4)=m(o 1,p-2,i);
filter(5)=m(o 2,p-2,i);
filter(6)=m(o-2,p-1,i);
filter(7)=m(o-1,p-1,i);
filter(8)=m(o,p-1,i);
filter(9)=m(o 1,p-1,i);
filter(10)=m(o 2,p-1,i);
filter(11)=m(o-2,p,i);
filter(12)=m(o-1,p,i);
filter(13)=m(o,p,i);
filter(14)=m(o 1,p,i);
filter(15)=m(o 2,p,i);
filter(16)=m(o-2,p 1,i);
filter(17)=m(o-1,p 1,i);
filter(18)=m(o,p 1,i);
filter(19)=m(o 1,p 1,i);
filter(20)=m(o 2,p 1,i);
filter(21)=m(o-2,p 2,i);
filter(22)=m(o-1,p 2,i);
filter(23)=m(o,p 2,i);
filter(24)=m(o 1,p 2,i);
filter(25)=m(o 2,p 2,i);
r(o,p,i)=sum(sum(filter))/25;
end
end
end
r=uint8(r);
figure(2),imshow(r);
BW=im2bw(r,0.1);
figure(4), imshow(BW);
zet0r
一般會員


發表:1
回覆:1
積分:0
註冊:2006-08-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-08-25 19:07:55 IP:211.76.xxx.xxx 未訂閱
找到問題所在了!

上面程式有錯誤, 剛剛檢查發現找到了, 我的i沒設定好, 所以只會跑藍色...
現在已經更正為for i=1:3;

索引不夠的問題,
我到matlab去找, 好像是說我用的是6.x版本,
7的版本有修正過,
我只要加上去一串指令即可.

%///////////////////////////////////////////
% Create an arbitrary TrueColor image matrix, and normalize it
img=repmat(magic(250),[1 1 3]);
imgi=img/max(img(:));
% Resize the image
% Notice the last argument, which specifies that we avoid filtering
imgo=imresize(imgi,[180,180],'bilinear',0);
% Show the results
disp(sprintf('Input min = %g. Input max = %g.',min(imgi(:)),max(imgi(:))))
disp(sprintf('Ouput min = %g. Output max = %g.',min(imgo(:)),max(imgo(:))))
%///////////////////////////////////////////



以下是更改過可以用的,
clear all, close all;
[x,map]=imread('F:\My Documents\3-18.jpg');
figure(1), imshow(x); %make 1 figure to show image.
m=double(x);
[x,y,z]=size(m);
r=zeros(x,y,z);
filter=zeros(1,25);
for i=1:3;
for o=3:x-2;
for p=3:y-2;
filter(1)=m(o-2,p-2,i);
filter(2)=m(o-1,p-2,i);
filter(3)=m(o,p-2,i);
filter(4)=m(o 1,p-2,i);
filter(5)=m(o 2,p-2,i);
filter(6)=m(o-2,p-1,i);
filter(7)=m(o-1,p-1,i);
filter(8)=m(o,p-1,i);
filter(9)=m(o 1,p-1,i);
filter(10)=m(o 2,p-1,i);
filter(11)=m(o-2,p,i);
filter(12)=m(o-1,p,i);
filter(13)=m(o,p,i);
filter(14)=m(o 1,p,i);
filter(15)=m(o 2,p,i);
filter(16)=m(o-2,p 1,i);
filter(17)=m(o-1,p 1,i);
filter(18)=m(o,p 1,i);
filter(19)=m(o 1,p 1,i);
filter(20)=m(o 2,p 1,i);
filter(21)=m(o-2,p 2,i);
filter(22)=m(o-1,p 2,i);
filter(23)=m(o,p 2,i);
filter(24)=m(o 1,p 2,i);
filter(25)=m(o 2,p 2,i);
r(o,p,i)=sum(sum(filter))/25;
end
end
end
r=uint8(r);
figure(2),imshow(r);
BW=im2bw(r,0.7);
figure(4), imshow(BW);




系統時間:2024-04-30 3:25:29
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!