matlab圖像處理課程設計
① 用matlab做一個圖像處理系統
圖片內容如下:
全球我
%對話框來打開文件
鏡像文件,路徑名] = uigetfile('*。TIF「);
如果鏡像文件= 0
文件名[路徑名的鏡像文件;
[X,地圖] = imread(文件名);
I = X;
show_Callback(hObject,EVENTDATA,處理)
集
結束(handles.save,「啟用」,「」);
圖像保存:
全局I
[鏡像文件路徑名filterindex] = uiputfile( {'*。TIF「,」TIF「,」*。*','文件'},「圖片另存為」);
(鏡像文件?= 0&filterindex == 1)
文件名= [路徑名鏡像文件。 TIF'];
imwrite(I,文件名);
其他(鏡像文件?= 0)
文件名= [路徑名的鏡像文件];
imwrite(I,文件名); />結束;
頻域增強:
全球我
J = imnoise(I,'椒鹽',0.02);
%的基tuxiang田家燕郊早生
>插曲(121),imshow(J)
標題(「漢你早生的元tuxiang)
J =雙(J);
F = FFT2(J) G = fftshift(F);
[M,N] =大小(F);
n = 3時,D0 = 20;
N1 =樓(M / 2); N2 =地板(N / 2);
為I = 1:M
對於j = 1:N
D = SQRT((I-N1)^ 2 +(J-N2)^ 2 );
?= 1 /(0.414 *(D/D0)^(2 * N));
G(I,J)= H * G(I,J); ...... / a>
結束
G = ifftshift(G);
G = UINT8(真實(ifft2(G)));
插曲(122),imshow(G) BR />標題(「三姐北海鋁泊tuxiang)
FFT變換:
%讀入原始圖像
插曲(1,2,1);
imshow( I)
標題元(TU);
%,離散傅立葉頻譜
J = fftshift(FFT??2(I));
插曲(1,2,2)
imshow(日誌(ABS(J)),[8,10])
標題(FFT);
② MATLAB圖像處理程序~
這是函數m文件,不能直接運行的,你的先給出f,m,n,rx,rc,然後調用這個函數m文件啊
③ 學習matlab圖像處理
Matlab 是一款功能強大的應用軟體,由於你基礎知識還未掌握,所以圖像處理方面就很版難理解!
建議,先權到圖書館借一些Matlab基礎的相關書籍,等基本操作和編程的語法掌握之後再去研讀圖像處理方面的書
記得我剛學matlab時也很迷茫,但是只要堅持練習,操作,嘗試,總會出成果的
只有基礎打牢固了,在學習深入的技巧就很容易了
還有,如果你需要MATLAB圖像處理翻譯版的優秀教材PDF,在我的網路Hi 或者留言板留下你的郵箱,我發一份給你
Good Luck ~~
④ MATLAB圖像處理步驟
數字圖像的邊界提取:
I=imread('bonemarr.tif');
[BW1,th1]=edge(I,'sobel',0.07);
th1str=num2str(th1)
imshow(I);
title('圖1:bonemarr.tif原圖','fontsize',14,'position',[128,260,0]);
figure;imshow(BW1);
ti='圖8: sobel運算元提取的邊界,閾值為';
ti=strcat(ti,th1str)
title(ti,'fontsize',12,'position',[128,260,0])
圖像壓縮:
clear
I=imread('blood1.tif');
I=im2double(I);
T=dctmtx(8);
B=blkproc(I,[8 8],'P1*x*P2',T,T);
mask[1,1,1,1,0,0,0,0;1,1,1,0,0,0,0,0;1,1,0,0,0,0,0,0;1,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0;]
B2=(blkproc(B,[8 8],'P1.*x',mask);
I2=blkproc(I,[8 8],'P1*x*P2',T,T);
subplot(1,2,1);
imshow(I);title('原圖');
subplot(1,2,2);
imshow(I2);title('解壓縮圖');
⑤ 圖像處理matlab的課程設計 題目是空域和頻域濾波
%1. 對圖像lena.bmp疊加高斯雜訊,椒鹽雜訊,乘性雜訊,雜訊方差為0.02,然後分別利用鄰域平均法和中值濾波法對該圖像進行濾波,顯示濾波後的圖像。
%要求窗口尺寸(先用3×3,再用5×5逐漸增大)可變,窗口類型(線性,十字形,方形)可選)
%領域平均法和中值濾波法是空間域的濾波的方法
clear all;
I=imread('lena.bmp');
J1=imnoise(I,'gaussian',0,0.02); %高斯雜訊 均值0 方差為0.02
J2=imnoise(I,'salt & pepper',0.02); %椒鹽雜訊 均值0 方差為0.02
J3=imnoise(I,'speckle',0.02); %乘性雜訊 均值0 方差為0.02
subplot(2,2,1),imshow(I),title('原始圖像');
subplot(2,2,2),imshow(J1),title('高斯雜訊');
subplot(2,2,3),imshow(J2),title('椒鹽雜訊');
subplot(2,2,4),imshow(J3),title('乘性雜訊');
%中值濾波法
figure(2)
K1=medfilt2(J1,[3,3]); %3*3的濾波窗
subplot(3,2,1),imshow(K1,[]),title('對3*3加高斯雜訊圖像中值濾波');
K2=medfilt2(J1,[5,5]); %5*5的濾波窗口
subplot(3,2,2),imshow(K2,[]),title('對5*5加高斯雜訊圖像中值濾波');
K2=medfilt2(J2,[3,3]); %3*3的濾波窗
subplot(3,2,3),imshow(K2,[]),title('對3*3加椒鹽雜訊圖像中值濾波');
K2=medfilt2(J2,[5,5]); %5*5的濾波窗口
subplot(3,2,4),imshow(K2,[]),title('對5*5加椒鹽雜訊圖像中值濾波');
K3=medfilt2(J3,[3,3]); %3*3的濾波窗
subplot(3,2,5),imshow(K3,[]),title('對3*3加乘性雜訊圖像中值濾波');
K2=medfilt2(J3,[5,5]); %5*5的濾波窗口
subplot(3,2,6),imshow(K3,[]),title('對5*5加乘性雜訊圖像中值濾波');
%領域平均法
figure(3)
L1=filter2(fspecial('average',3),J1);% 3*3模板平滑均值濾波
L2=filter2(fspecial('average',5),J1);%5×5模板平滑均值濾波
subplot(3,2,1),imshow(L1,[]),title('對3*3加高斯雜訊圖像平滑濾波');
subplot(3,2,2),imshow(L2,[]),title('對5*5加高斯雜訊圖像平滑濾波');
L3=filter2(fspecial('average',3),J2);% 3*3模板平滑均值濾波
L4=filter2(fspecial('average',5),J2);%5×5模板平滑均值濾波
subplot(3,2,3),imshow(L3,[]),title('對3*3加椒鹽雜訊圖像平滑濾波');
subplot(3,2,4),imshow(L4,[]),title('對5*5加椒鹽雜訊圖像平滑濾波');
L5=filter2(fspecial('average',3),J3);% 3*3模板平滑均值濾波
L6=filter2(fspecial('average',5),J3);%5×5模板平滑均值濾波
subplot(3,2,5),imshow(L5,[]),title('對3*3加乘性雜訊圖像平滑濾波');
subplot(3,2,6),imshow(L6,[]),title('對5*5加乘性雜訊圖像平滑濾波');
%領域平均法是指用某點領域的灰度值平均值來代替該點的灰度值,演算法簡單,處理速度快,但是在衰減雜訊的同時也會使圖像產生模糊。
%中值濾波法對椒鹽雜訊的抑制很好,但是不太適合點,線,尖頂等細節較多的圖像
⑥ matlab圖像處理基本步驟
看是什麼圖了 無圖無真相
反正就是預處理 最終要把圓和矩形分割出來 簡單是話 直接size(bw)獲取行 高
看樣子貌似是圖像長度測量的課題
⑦ 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的數字圖像處理
圖片中有多少米,這個統計很簡單,但是圖片中統計汽車就難了。
MATLAB與Vc++程序實例的書好像都有數米粒的例子,你找找吧。
我給你個數米粒個數的程序吧:
i=imread('rice.tif');
i1=rgb2gray(i);%灰度化
bw=im2bw(i1);%二值化
[labeled number]=bwlabel(bw,8);%八鄰域個體數付給number,labeled里是結構
應該就有結果了number=80;
⑨ matlab數字圖像處理系統如何編寫
具體得參照MATLAB的函數,找一本想關Matlab圖像處理的書,裡面都有介紹的。A=imread('D:\IMG\girl.bmp');%bmp文件的讀內取,括弧裡面容是圖片路徑
imwrite(A,'D:\IMG\girl.bmp');
imshow(A);
subplot(1,3,1),imshow(A),title('原圖像');imfinfo('D:\IMG\girl.bmp');A=imread('D:\IMG\girl.bmp');
J=imnoise(A,'gaussian',0.002);
subplot(1,3,2),imshow(J),title('加雜訊後圖像');
K=zeros(size(A));
for i=1:100
J=imnoise(A,'gaussian',0.002);
J1=im2double(J);
K=K+J1;
end
K=K/100;
subplot(1,3,3);
imshow(K);
title('消雜訊後圖像');