① matlab圖像處理的編程
同學既然你已經把演算法描述出來了,其實你離寫出程序就不遠了。為什麼不自己嘗試一下呢?如果有苦難的話,可以話流程圖來輔助。這里我給你一個示例,但是希望你以後自己動手。
[xlim ylim]=size(I);%I是你的灰度圖像
red=[];
for i=1:xlim
left=0;
right=0;
for j=1:ylim
if I(i,j)==255&&I(i,j+1)~=255
left=j
end
if j<ylim&&I(i,j)~=255&&I(i,j+1)==255%你對右邊緣點沒有定義,我自己理解為改點不是255且右邊的像素是255.
right=j;
end
if I(i,j)==255&&I(i,j+1)==255
break;
end
end
red(i)=right-left;
end
最後red這個向量裡面存的是每一行的左右邊緣間距。如果那些沒有邊緣的,則會得到0。我是按照你的邏輯來寫的。但是我感覺你的流程是有問題的。如果你的圖片與你的邏輯不是很符合的話,應該是出不來結果的。我也是盲編,可能有錯誤。你在調試的過程中自己把握吧。
圖像處理需要自己動手,我還是建議你修改一下你的編程邏輯,然後自己動手編寫程序。如果有問題,可以私信我。我願意跟你交流。
② 關於用matlab編程實現圖像處理
1、規定圖片的大小,比如480*640;
2、規定分塊的大小,比如24*32(分成20*20塊);
3、該塊隨即取n個像素點,先假設取20個,然後平均這20個像素點的G值定義為G1,求這塊所有像素點的G值平均值G0;
4、求G1與G0的方差varG,存進一個數組中備用;
image=imread('tupian.jpg');
G1=0;temp=[];
for i=1:24:480
for j=1:32:640
area=image(i:i+23,j:j+31,:);%取出該區域
for n=1:20
x=round(rand()*24);
y=round(rand()*32);%隨即生成要取點的x,y坐標
while x==0 | y==0
x=round(rand()*24);
y=round(rand()*32);
end
G1=G1+double(area(x,y,2));%G1中保存此塊中20個點的G值和
end
G1=double(G1)/20;%G1為20個點的G值平均值
G0=mean(mean(area(:,:,2)));%G0保存此塊G值的均值
G=[G1,G0];
varG=var(G);%求出方差
temp=[temp;varG];
end
end
上面程序可以運行。
③ MATLAB圖像處理程序~
這是函數m文件,不能直接運行的,你的先給出f,m,n,rx,rc,然後調用這個函數m文件啊
④ matlab 圖像處理
I=imread('lena.jpg');
I1=rgb2gray(I);
figure; hold on;
R = I(:,:,1);
G = I(:,:,2);
B = I(:,:,3);
N=imhist(I1); plot(N,'k-');
N=imhist(R); plot(N,'r-');
N=imhist(G); plot(N,'g-');
N=imhist(B); plot(N,'b-');
legend('L','R','G','B','Location','NorthWest');
xlim([0,255]);
亮度和對比度調整可以用brighten(),imadjust()兩個函數
⑤ 數字圖像處理可以全部用matlab編程么
看你要用在哪兒了,matlab是一個有輔助編程功能的強大軟體,要是你的目的是編寫c語言或是其他語言的程序,然後打到單片機嵌入式里做些簡單的圖像識別與處理,這樣就要盡量把你的演算法簡單化,matlab的許多處理方法,比如好多函數,在上位機,也就是我們的電腦上運行沒問題,要單片機上是堅決不能運行的,聽你的語氣你應該不簡單的在做數字圖像的處理吧,這只是其中一步吧可能,matlab不錯,好多時候可以先在matlab上實現圖像的處理,然後再考慮程序的移植問題,放手去做吧
⑥ 初學圖像處理,matlab程序解讀
x=imread('D:\ebook\lena.bmp');%%讀入圖像
x=rgb2gray(x);%%將彩色圖像轉化成灰度圖像,matlab只處理灰度圖像
x=double(x);%%將圖像數據類型轉化成雙精度,一般計算都是採用雙精度
p=wiener2(x);%%對圖像進行維納濾波
figure,imshow(p,[
]);%%顯示濾波後的圖像
h=[0
1
0;1
-4
1;0
1
0];%%Laplacian運算元掩膜矩陣
q=
conv2(x,h,
'same');%%對圖像進行反向濾波
r=
x
-
q
;%%原圖像與反向濾波後的圖像進行差運算
figure,imshow(r,[
])
;%%顯示差運算後的圖像
⑦ MATLAB圖像處理編程問題
提問的藝術
在網路世界裡,當提出一個技術問題時,你能得到怎樣的回答?這取決於挖出答案的難度, 同樣取決於你提問的方法。本指南旨在幫助你提高發問技巧,以獲取你最想要的答案……
不想掩飾對這樣一些人的蔑視--他們不願思考,或者在發問前不去完成他們應該做的事。這種人只會謀殺時間--他們只願索取,從不付出,無端消耗我們的時間,而我們本可以把時間用在更有趣的問題或者更值得回答的人身上。我們稱這樣的人為「失敗者」(由於歷史原因,我們有時把它拼作「lusers」)。
提問之前(Before You Ask)
在通過電郵、新聞組或者聊天室提出技術問題前,檢查你有沒有做到: 1. 通讀手冊,試著自己找答案。
2. 在FAQ里找答案(一份維護得好的FAQ可以包羅萬象:)。 3. 在網上搜索(個人推薦google~~~)。 4. 向你身邊精於此道的朋友打聽。
當你提出問題的時候,首先要說明在此之前你幹了些什麼;這將有助於樹立你的形象:你不是一個妄圖不勞而獲的乞討者,不願浪費別人的時間。如果提問者能從答案中學到東西,我們更樂於回答他的問題。
周全的思考,准備好你的問題,草率的發問只能得到草率的回答,或者根本得不到任何答案。越表現出在尋求幫助前為解決問題付出的努力,你越能得到實質性的幫助。
小心別問錯了問題。
另一方面,表明你願意在找答案的過程中做點什麼,是一個非常好的開端。「誰能給點提示?」、「我這個例子里缺了什麼?」以及「我應該檢查什麼地方?」比「請把確切的過程貼出來」更容易得到答復。因為你顯得只要有人指點正確的方向,你就有完成它的能力和決心。
怎樣提問 (When You Ask)
謹慎選擇論壇
小心選擇提問的場合。如果象下面描述的那樣,你很可能被忽略掉或者被看作失敗者: 1. 在風馬牛不相及的論壇貼出你的問題
2. 在探討高級技巧的論壇張貼非常初級的問題;反之亦然 3. 在太多的不同新聞組交叉張貼
⑧ 急求matlab圖像處理編程
a=imread('圖片『)
對a矩陣進行處理即可。
⑨ MATLAB數字圖像處理程序
窗函數設計低通濾波器:
fp=1000;
fc=1200;
as=100;
ap=1;
fs=22000;
wp=2*fp/fs;
wc=2*fc/fs;
N=ceil((as-7.95)/(14.36*(wc-wp)/2))+1;
beta=0.1102*(as-8.7);
window=Kaiser(N+1,beta);
b=fir1(N,wc,window);
freqz(b,1,512,fs);
結果:
高通濾波器:
fs=22000;
Wp=2*5000/fs;
Ws=2*4800/fs;
Ap=1;
As=100;
N=ceil(8*pi/(Wp-Ws))+1;
N=N+mod(N+1,2)+1;
Wc=(Wp+Ws)/2/pi;
h=fir1(N,Wc,'high');
omega=linspace(0,pi,512);
freqz(h,1,omega);
結果:
帶通濾波器:
fs=22000;
Wp1=2*1200/fs;
Wp2=2*3000/fs;
Wc1=2*1000/fs;
Wc2=2*3200/fs;
Ap=1;
As=100;
W1=(Wp1+Wc1)/2;
W2=(Wp2+Wc2)/2;
wdth=min((Wp1-Wc1),(Wc2-Wp2));
N=ceil(11*pi/wdth)+1;
b = fir1(N,[W1 W2]);
freqz(b,1,512,fs)
結果:
雙線性法設計低通濾波器:
fp=1000;
fc=1200;
as=100;
ap=1;
fs=22000;
wp=2*fp/fs;
wc=2*fc/fs; %歸一化截止頻率
[n,wn]=ellipord(wp,wc,ap,as);%求數字濾波器的最小階數和歸一化截止頻率
[b,a]=ellip(n,ap,as,wn);%求傳遞函數的分子分母系數
freqz(b,a,512,fs);
結果:
濾波:
d=filter(b,a,y);
⑩ matlab 圖像處理編程
你的提問也太簡便了吧,是不是來湊問題的?