matlab 实现马赫带效应,图像上机实验.doc
圖像上機實驗.doc
實驗一 圖像處理的基本操作 一,實驗目的 1.熟悉有關數字圖像處理的MATLAB基本操作和編寫; 2.掌握數字圖像的基本讀寫、顯示與保存; 3.能夠利用MATLAB工具箱完成圖像處理的基本運算; 二,實驗內容 1.(1)讀取圖像并顯示真彩色圖像house.tiff; (2)讀取圖像并顯示索引色圖像canoe.tif,并轉換為灰度圖像; (3)讀取圖像并顯示灰度圖像rice.png,并轉換為二進制圖像; (4)檢測內存中的圖像和保存圖像; 2.查看不同分辨率下圖像lena.tiff的顯示結果; 3.對彩色圖像Peppers.png觀看GRB通道各單通道圖像; 4.實現馬赫帶效應并畫出灰度直方圖。 三,代碼 I=imread( house.tiff ); figure(1) imshow(I) [A,map]=imread( canoe.tif ); figure(2) subplot(121) imshow(A,map) D=ind2gray(A,map); subplot(122) imshow(D) G=imread( rice.png ); figure(3) subplot(121) imshow(G) th=graythresh(G);H=im2bw(G,th); subplot(122) imshow(H) whos;imwrite B=imread( lena.tiff ); figure(4), subplot(121) imshow(B) C = imresize(B, 0.2) subplot(122) imshow(C)D=imread( Peppers.png ); r=D,r(:,:,[2 3])=0; g=D,g(:,:,[1 3])=0; b=D,b(:,:,[1 2])=0; figure(5), subplot(1,3,1),imshow(r); subplot(1,3,2),imshow(g); subplot(1,3,3),imshow(b); a=zeros(256,256); for i=1:32:256a(:,i:i+32)=i; end figure(6); subplot(121) imshow(uint8(a)); subplot(122) imhist(uint8(a)); 四,實驗結果五,結果分析從運行結果可以看出,實驗還是比較成功的。但是在做索引色那個圖像的 時候,如果索引色和灰度圖像放在同一個figure里,索引色圖像顯示的也是灰 色,因此我只能把索引色圖像和灰度圖像分開放到兩個figure里。在查看不同 分辨率下圖像lena.tiff的顯示結果時,必須要對兩個圖像進行放大查看才能 看出不同。 實驗二 圖像變換1 一,實驗目的 1.熟悉有關MATLAB工具箱中提供的圖像變換函數; 2.掌握傅立葉變換和小波變換等常用的正交變換函數; 二,實驗內容 1.對圖像lena.png進行傅立葉變換和離散余弦變換,并分別求出其逆變換后 重構圖像的均方誤差; 2.實現圖像lena.png的兩層小波分解,觀察分解系數并重構,求重構圖像誤 差值; 3.觀察圖像IM1.BMP經小波分解系數的方向性,實現三層小波分解,分別把 HL,LH,HH子帶置零和重構,觀察重構圖像跟原始圖像的差異。 三,代碼 %1.對圖像lena.png進行傅立葉變換和離散余弦變換,% 并分別求出其逆變換后重構圖像的均方誤差; clear; clc; I=imread( lena.png ); %傅里葉變換 figure(1); I1=fft2(I); I1=fftshift(I1); If=ifftshift(I1); If=uint8(real(ifft2(If))); subplot(231); imshow(I); subplot(232); imshow(log(abs(I1)),[]); subplot(233); imshow(If); [m,n]=size(I); %計算均方誤差 for i=1:mfor j=1:ntemp(i,j)=(If(i,j)-I(i,j))^2;end end wucha1=sum(sum(temp)) %離散余弦變換 I2=dct2(I); I3=fftshift(I2); Id=idct2(I2); Id=uint8(real(Id)); subplot(234); imshow(I); subplot(235); imshow(log(abs(I3)),[]); subplot(236); imshow(Id); [m,n]=size(I); %計算均方誤差 for i=1:mfor j=1:ntemp(i,j)=(If(i,j)-I(i,j))^2;end end wucha2=sum(sum(temp))%% % 2.實現圖像lena.png的兩層小波分解,觀察分解系數并重構,求重構圖像誤差值; X=imread( lena.png ); [c,s]=wavedec2(X,2, bior3.7 ); a1=wrcoef2( a ,c,s, bior3.7 ,1); h1=wrcoef2( h ,c,s, bior3.7 ,1); v1=wrcoef2( v ,c,s, bior3.7 ,1); d1=wrcoef2( d ,c,s, bior3.7 ,1); c1=[a1,h1;v1,d1]; c1=uint8(c1); Xr=waverec2(c,s, bior3.7 ); figure(2); subplot(131); imshow(X); subplot(132); imshow(c1); subplot(133); imshow(uint8(Xr)); [m,n]=size(X); %計算均方誤差 for i=1:mfor j=1:ntemp(i,j)=(Xr(i,j)-I(i,j))^2;end end wucha3=sum(sum(temp))%% % 3.觀察圖像IM1.BMP經小波分解系數的方向性,實現三層小波分解, % 分別把HL,LH,HH子帶置零和重構,觀察重構圖像跟原始圖像的差異。 P=imread( C:\shiyan2\IM1.BMP ); [c,s]=wavedec2(P,3, bior3.7 ); a1=wrcoef2( a ,c,s, bior3.7 ,1); h1=wrcoef2( h ,c,s, bior3.7 ,1); v1=wrcoef2( v ,c,s, bior3.7 ,1); d1=wrcoef2( d ,c,s, bior3.7 ,1); c1=[a1,h1;v1,d1]; c1=uint8(c1); figure(3); subplot(131); imshow(P); subplot(132); imshow(c1); subplot(133); imshow(uint8(a1));
總結
以上是生活随笔為你收集整理的matlab 实现马赫带效应,图像上机实验.doc的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《产品经理深入浅出》PART 3:产品经
- 下一篇: MatLab 数字图像处理实验 图像分割