久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5874|回復: 0
打印 上一主題 下一主題
收起左側

MATLAB數字圖像處理實驗講義(指導書)

[復制鏈接]
跳轉到指定樓層
樓主


下面是內容預覽(圖片在附件中下載):

數字圖像處理課內實驗指導書
李文杰施文娟
鹽城師范學院新能源與電子工程學院
二○一七年二月
說明:1  講義中給出的部分代碼供同學們參考,鼓勵同學自己編寫運行效率更高或者可讀性更好的代碼,將作為成績評定的重要依據。
2  實驗中的仿真圖是仿真算法的主要結果,由于是在實驗室機房中做實驗,仿真后的圖文件,請每位同學以fig文件和矢量圖文件emf兩種格式保存于自己的移動存儲設備中(注意每個文件名稱,例如可采用:實驗1_圖1.fig),實驗結束后,仿真圖文件的電子版也需要上交。
3  每次實驗結束后,在一周內請及時交實驗報告,實驗報告上交是否及時也將作為實驗報告成績的依據。
4  每個實驗仿真圖請自行打印后粘貼于實驗報告的相關位置。
5  每個實驗的思考題請按照要求認真完成。


實驗一 計算圖像的基本統計指標

一、實驗目的

1熟悉MATLAB圖像處理工具箱的使用方法。
2了解計算圖像的統計指標的方法及其在圖像處理中的意義。
二.實驗主要儀器設備
1     微型計算機:Intel Pentium及更高。
2     MATLAB(安裝了圖像處理工具箱,即Image Processing Toolbox)
3     典型的灰度、彩色圖像文件。
三、實驗原理
1     可以將一幅圖像看成一個二維矩陣,因此用MATLAB處理圖像是十分方便的。
2     利用MATLAB圖像處理工具箱讀、寫和顯示圖像文件。
①采用imread函數讀出圖像。
②采用imwrite函數寫入圖像。
③采用imshow函數顯示圖像。
3   計算圖像的有關統計參數。
   ① 圖像的大小。圖像的大小是圖像的重要屬性,數值是寬度(M,單位為:像素)與高度(N,單位為:像素)的乘積。

   ② 圖像的灰度平均值。該指標指圖像法f所以灰度值的算術平均值,反映了一幅圖像的平均亮度。

③協方差矩陣(variance-covariance matrix)
設 f(x,y)和g(x,y)是大小為M×N的兩幅圖像,則兩幅圖像之間的協方差矩陣 為

協方差矩陣是兩幅圖像之間的相關程度的一種度量。協方差矩陣為零時表明兩幅圖像之間相互獨立,反之表示兩圖像之間相互依賴越大,相關程度越強。
若f=g,則單幅圖像的協方差即為該圖像的方差(自協方差)。
④圖像的灰度標準差(standard deviation)。由方差按數據的平方來計算,與灰度值相差大,難以直觀地衡量,所以對方差開平方得到標準差SD,標準差是評價離散的較好指標。

⑤圖像的相關系數。協方差可以作為兩幅圖像相關性的一種度量,但它受兩幅圖像像素數值的影響。因此,經常將其歸一化成相關系數。兩個圖像f(x,y)和g(x,y)的相關系數  是描述圖像相關程度的統計量,反映了兩圖像相互的線性聯系密切程度的統計參數。相關系數在0~1范圍內變動,其值越接近1,兩個圖像見的線性相關越密切;其值越接近0,相關越不密切。
四、實驗內容
1     利用MATLAB圖像處理工具箱讀、寫和顯示圖像文件。
2     計算圖像的有關統計參數。
五、實驗步驟
參考教材附錄B:常用MATLAB圖像處理Toolbox  函數完成以下操作。

(1)  利用“讀圖像文件I/O”函數讀入圖像。

(2)      利用“讀圖像文件I/O”的iminfo函數了解圖像文件的基本信息。利用“像素和統計處理”函數計算讀入圖像的二維相關系數(corr2函數)、確定像素顏色(impixel函數)、像素的平均值(mean2函數)、計算像素的標準偏移(std2函數)等。
注意:Impixel函數返回指定的圖像像素的RGB(紅red、綠green、藍blue)顏色值。在下面的語法中,impixel函數顯示輸入圖像,并等待你用鼠標指定像素:
    P =impixel(img);
    如果省略輸入參數,impixel作用于當前使用的圖像。使用鼠標左鍵單擊來選擇像素,可以在不同位置單擊來選擇多個像素。按backspace或delete刪除先前選擇的像素。按住shift點擊鼠標左鍵,單擊鼠標右鍵或者雙擊鼠標左鍵,都可以添加最后一個像素并結束選擇顯示結果;按回車鍵可以結束選擇并且不添加像素。完成像素的選擇后,impixel向輸出參數中返回一個代表所選像素RGB值的m×3的矩陣,m為所選像素的個數。如果你沒有提供輸出參數,impixel將矩陣返回到ans中。
(3)      利用“幾何操作”剪切圖像、改變圖像大小(imresize函數)、旋轉圖像(imrotate函數)等。
(4)      將經上述不同操作的圖像用“讀圖像文件I/O”函數分別寫入到各自的圖像文件中。
六、實驗報告要求
1   說明利用MATLAB圖像處理工具箱讀、寫和顯示圖像文件、計算圖像的有關統計參數的原理。
2   記錄讀取和幾何變換處理后的圖像、圖像的統計數據。
3   記錄點運算的結果圖。
4   回答思考題。
5   總結心得和體會。
七、預習要求
(1)了解MATLAB圖像處理工具箱的功能。
(2)了解圖像基本指標的含義。
八、思考題
(1)說明圖像的統計特征對圖像處理的意義。
(2)比較不同圖像的統計特征的差別,并分析原因。

實驗二  圖像變換與二維數字濾波

一、實驗目的

1      了解離散余弦正弦變換和逆變換的原理。
2      理解離散余弦變換系數的特點。
3      了解離散余弦變換在圖像數據壓縮中的應用。
二、實驗主要儀器設備
1      微型計算機 :Intel Pentium及更高。
2      MATLAB軟件。
三、實驗原理
1      二維離散余弦變換和離散余弦逆變換的計算公式。
2      MATLAB中DCT變換的實現函數是dct2();DCT逆變換的實現函數是idct2()。
四、實驗內容
在MATLAB環境中,進行圖像的離散余弦變換和離散余弦逆變換,初步理解DCT變換在壓縮編碼中的應用。減少DCT系數,觀察重建信號和誤差信號。
五、實驗步驟
1      打開MATLAB。
2      新建DCTtranslation.m文件
3      選取rose.jpg文件,進行離散余弦變換,并對其進行離散余弦反變換,觀察其結果。
4    選擇不同的閾值,觀察重構圖像。
5    計算重構圖像的MSE。
參考程序:
%DCTtranslation.m
I = imread('rose.jpg');
clear all;
close all;
G=imread('rose.jpg');
figure(1);imshow(G);
%G=rgb2gray(F);
dctG=dct2(G);
figure(2);imshow(log(abs(dctG)),[]);
T1=5;T2=50;
dctG(abs(dctG)<T1)=0;
idctF1=idct2(dctG);
figure(3);imshow(idctF1,[0 255]);
dctG(abs(dctG)<T2)=0;
idctF2=idct2(dctG);
figure(4);imshow(idctF2,[0 255]);
[M N]=size(G);
MSE1=sum(sum((idctF1-double(G)).^2))/(M*N)
MSE2=sum(sum((idctF2-double(G)).^2))/(M*N)
    上述程序同樣可以實現DCT的正、反變換。
六、實驗報告要求
1      說明離散余弦正、反變換的原理。
2      分析重建圖像、誤差圖像和DCT系數的關系。
七、預習要求
了解MATLAB環境和它的使用方法。
八、思考題
對重建圖像進行主觀評價和客觀評價,分析重建圖像的質量與DCT重建系數的關系。

實驗三  圖像編碼與壓縮

一、實驗目的
1     了解圖像的壓縮編碼原理;
2     掌握常用圖像壓縮算法。
二、實驗主要儀器設備
1     微型計算機:Intel Pentium及更高。
2     MATLAB軟件(含圖像處理工具箱)。
三、實驗原理
1     去除數據冗余度可以有效地壓縮數據。
2     圖像編碼壓縮的主要技術指標。(1)壓縮化;(2)客觀評價SNR;(3)主觀評價。
四、實驗內容
1     利用變換編碼壓縮圖像信息。
2     計算壓縮算法的性能。
五、實驗步驟
1     自己選擇測試圖像。
2     根據設計要求選擇合適的圖像編碼與壓縮方法。
3     設計編碼與壓縮算法。
4     顯示原始圖像與壓縮重構圖像。

例1 基于FFT的圖像壓縮技術
考慮一幅512*512像素,灰度級為256的標準圖像lena,用FFT實現圖像數據的壓縮,首先將圖像分割成(512/8)^2個8*8子圖像,對每個子圖像進行FFT,這樣每個子圖像有64個傅里葉變換系數。按照每個系數的方差來排序,由于圖像是實值的,其64個復系數只有一半是有差別的。舍去小的變換系數,就可以實現數據壓縮。此處32個系數,實現2:1的數據壓縮,然后進行逆變換,其matlab程序如下:
%設置壓縮比
cr = 0.5;                   % cr = 0.5為2:1壓縮,cr = 0.125 為8:1壓縮
%讀入并顯示原始圖像
I1 = imread(‘lena.bmp’);   
I1 = double(I1)/255;       %圖像為256級灰度圖像,對圖像進行歸一化操作
figure(1);              %顯示原始圖像
imshow(I1);            
%對圖像進行FFT
fftcoe = blkproc(I1,[8 8],’fft2(x)’);      %將圖像分割成8*8的子圖像進行FFT
coevar = im2col(fftcoe,[8 8],’distinct’);  %將變換系數矩陣重新排列
coe = coevar;                       
[y,ind] = sort(coevar);
[m,n] = size(coevar);
snum = 64-64*cr;                 %根據壓縮比確定要變0的系數個數
%舍去不重要的系數
for i = 1:n
  coe(ind(1:snum),i) = 0;             %將最小的snum個變換系數清0
end
B2 = col2im(coe,[8  8],[512 512],’distinct’);  %重新排列系數矩陣
%對子圖像塊進行FFT逆變換獲得各個子圖像的復原圖像,并顯示壓縮圖像
I2 = blkproc(B2,[8  8],’ifft2(x)’);
figure(2)                            %顯示壓縮后的圖像
imshow(I2);
%計算均方根誤差erms
e = double(I1) – double(I2)
[m , n] = size(e);
erms = sqrt(sum(e(:).^2)/(m*n));

當cr = 0.5時,上述程序實現的圖像壓縮比為2:1,均方根系數為erms = 0.0398;
cr=0.125時,實現的圖像壓縮比為8:1,均方根系數為 erms =0.0474
  
上述程序中的主要函數功能:
(1)   blkproc 函數,它能夠將每個顯示塊從圖像中提取出來,然后將其作為參數傳遞給任何用戶函數,另外,blkproc函數還將用戶函數返回的顯示塊進行組合,從而生成最后輸出的圖像,語法格式為:
          B = blkproc (A,[m  n],fun)
其功能是對圖像A的每個不同m*n塊應用函數fun進行處理,fun 為運算函數,其形式為y=fun(x),可以是一個包含函數名的字符串,也可以是帶表達式的字符串。另外,還可以將用戶函數指定為一個嵌入式函數。

(2)im2col函數,它能夠將圖像塊排列成向量,其語法格式為:
          B = im2col(A , [m  n],block_type)
功能是將圖像A的每一個m*n塊轉換成一列,重新組合成矩陣B,block_type指定排列的方式,當block_type為disinct時,圖像塊不重疊,當其為sliding時,圖像塊滑動。

(3)col2im函數,它用于將向量重新排列成圖像塊,語法格式為:
         B = col2im(A,[n  n],[nm   nn],block_type)
其功能將圖像A的每一列排列成m*n的圖像塊,block_type指定排列的方式,當其為distinct時,圖像塊不重疊,其為sliding時,圖像塊滑動,并用這些圖像塊組合成mm*nn的圖像A

例2 基于DCT的圖像壓縮技術
與前面相同的圖像,首先將圖像分割成(512/8)^2個8*8子圖像,對于每個子圖像進行DCT,這樣每個子圖像有64個變換系數,舍去50%小的變換系數,即保留32個系數,進行2:1的壓縮,其Matlab程序如下所示:

%設置壓縮比
cr = 0.5                      % cr = 0.5為2:1壓縮,cr = 0.125 為8:1壓縮
%讀入并顯示原始圖像
initialimage =imread('lena_numbers_512.tiff');
initialimage = double(initialimage)/255;
figure(1);
imshow(initialimage);
%對圖像進行DCT
t = dctmtx(8);
dctcoe = blkproc(initialimage,[88],'P1*x*P2',t,t');
coevar = im2col(dctcoe,[8 8],'distinct');
coe = coevar;
[y,ind] = sort(coevar);
[m,n] = size(coevar);
%舍去不重要的系數
snum = 64 - 64*cr;
for i = 1 : n
  coe(ind(1:snum),i) = 0;
end
b2 = col2im(coe,[8 8],[512 512],'distinct');
%對截取后的變換系數進行DCT逆變換
i2 = blkproc(b2,[8 8],'P1*x*P2', t',t);
%顯示壓縮圖像
figure(2);
imshow(i2);
%計算均方根誤差
e = double (initialimage) - double(i2);
[m , n] = size(e);
erms = sqrt(sum(e(:).^2)/(m*n));

六、實驗報告要求
1     說明壓縮原理與算法。
2     原始圖像和壓縮圖像重構圖像。
3     計算壓縮性能,說明為什么同一壓縮算法對不同的圖像壓縮效果不同。
4     回答思考題。
5     心得和體會。
七、預習要求
1     了解圖像編碼壓縮的基本原理和算法。

2     掌握MATLAB圖像處理工具箱(ImageProcessing ToolBox)中有關圖像編碼壓縮的函數。

3     編寫相應的程序。
八、思考題
1     DFT與DCT的性能比較。
2     討論用一算法對不同原始圖像壓縮性能的影響。

實驗四  圖像增強一、實驗目的
1     熟悉并學會使用MATLAB中圖像增強的相關函數。
2     了解圖像增強的方法、噪聲去除的方法和去噪的效果。
二、實驗主要儀器設備
1     微型計算機:Intel Pentium及更高。
2     MATLAB軟件(含圖像處理工具箱)。
3     典型的灰度、彩色圖像文件。
三、實驗原理
1     將一幅圖像看成是一個二維矩陣,因此用MATLAB進行圖像增強是十分方便的。
2     灰度變換可以使圖像的動態范圍加大,圖像的對比度擴展、圖像更為清晰,是圖像增強的重要手段。
圖像的點運算
(1)線性擴展
灰度級變換函數s=T(r)可為
file:///Z:\TEMP\msohtmlclip1\01\clip_image012.gif
(2)非線性擴展
     灰度級變換函數s=T(r)可為
                  s=clog(1+r)
(3)灰度倒置
     灰度級變換函數s=T(r)可為
                  s=255-r
(4)二值化
      確定一閾值r1,file:///Z:\TEMP\msohtmlclip1\01\clip_image014.gif。file:///Z:\TEMP\msohtmlclip1\01\clip_image016.gif的灰度值置白,file:///Z:\TEMP\msohtmlclip1\01\clip_image018.gif的灰度值置黑。

3     利用MATLAB圖像處理工具箱讀函數、顯示函數、加噪函數、濾波函數進行圖像去噪處理。采取 imread函數讀圖像、imshow函數顯示圖像、imnoise函數對圖像進行加噪處理、filter2函數對圖像進行濾波。

4     各種去噪方法:鄰域平均、中值濾波。
四、實驗內容及步驟
1     % 直接灰度變換
clear all;
clc;

I =imread('cameraman.tif');

figure;imshow(I);

I1 =imadjust(I,[0 1],[1 0],1.0);

figure;subimage(I1);
%直方圖灰度變換

I =imread('cameraman.tif');

figure;imshow(I);

figure;imhist(I);

J = imadjust(I,[0.15  0.9], [0 1]);

figure;imshow(J);

figure;imhist(J, 64);

2   圖像的空域點處理增強

(1)選擇一幅圖像 lena.jpg,設置輸入選擇一幅圖像lena.jpg,設置輸入/輸出變換的灰度級范圍,a=0.3,b=0.6,c=0.1,d=0.9;
(2)設置非線性擴展函數的參數c=2;
(3)采用灰度倒置變換函數s=255-r進行圖像變換;
(4)設置二值化圖像的閾值,分別為level=0.4,level=0.7。
參考程序如下:
I=imread('lena.bmp');
figure;subplot(1,3,1);
imshow(I);
title('原圖');

J=imadjust(I,[0.30.6],[0.1 0.9]);

subplot(1,3,2);imshow(J);
title('線性擴展');
I1=double(I);
I2=I1/255;
C=2;
K=C*log(1+I2);
subplot(1,3,3);
imshow(K);
title('非線性擴展');
M=255-I;
figure;
subplot(1,3,1);imshow(M);
title('灰度倒置');
N1=im2bw(I,0.4);
N2=im2bw(I,0.7);
subplot(1,3,2);
imshow(N1);
title('二值化閾值0.4');
subplot(1,3,3);
imshow(N2);
title('二值化閾值0.7');
2     對圖像加入噪聲(imnoise),選擇不同的去噪方法,如鄰域平均(filter2)、中值濾波(medfilt2)等方法,對圖像進行增強處理。
3     分析各種去噪方法對不同噪聲圖像處理的結果。
六、實驗報告要求
1     說明利用MATLAB圖像處理工具箱進行圖像的讀、顯示、加噪、去噪處理的方法。
2     記錄原圖像、增強圖像、加噪圖像、去噪處理后的圖像。
3     列出上述圖像處理的程序。
4     回答思考題。
5     心得和體會。
七、預習要求
1     了解MATLAB圖像處理工具箱的功能。
2     了解圖像去噪的方法。
八、思考題
1     比較同一種噪聲、不同去噪方法處理的效果。
2     比較同一種噪方法、針對不同噪聲處理的效果。
3   對數非線性變換能否使圖像的低灰度級壓縮,高灰度級擴展或者低灰度級擴展,高灰度級壓縮?選擇不同的閾值,觀察閾值對圖像二值化的影響。


全部資料下載地址:

數字圖像處理實驗.rar (466.96 KB, 下載次數: 29)



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂1 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕亚洲一区 | 97日日碰人人模人人澡分享吧 | 日韩一级精品视频在线观看 | 一区二区三区四区不卡视频 | 免费中文字幕日韩欧美 | 色综合成人网 | 在线免费黄色 | 999久久久 | 国产精品美女久久久久 | 国产一级久久久久 | 欧美综合精品 | 毛片黄片| 亚洲视频在线观看一区二区三区 | 91视频大全 | 手机av免费在线 | 国产精品精品视频一区二区三区 | 国产免费观看一级国产 | 青青久在线视频 | av一级 | 日韩欧美亚洲 | 四虎永久免费在线 | 黄a网| 亚洲一区二区三区四区五区中文 | 亚洲人成在线观看 | 中文成人在线 | 国产日韩欧美91 | 国产伦精品一区二区三区视频金莲 | 天堂中文资源在线 | 婷婷成人在线 | 日韩欧美视频 | 成人黄色电影免费 | 免费一区二区三区 | 日本一本在线 | 日本人做爰大片免费观看一老师 | 精品国产乱码久久久久久丨区2区 | 在线只有精品 | 欧美jizzhd精品欧美巨大免费 | 日本午夜精品一区二区三区 | 国产sm主人调教女m视频 | 999免费网站 | 国产精品一区二区视频 |