版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
數(shù)字圖像處理圖像處理工具箱
第1頁,共100頁,2023年,2月20日,星期六
圖像處理軟件Photoshop是一種著名的圖像處理軟件,該軟件能夠?qū)崿F(xiàn)圖像顯示、增強(qiáng)、剪切、濾波等一系列操作,效果非常不錯(cuò),該軟件生成的圖像格式.psd已經(jīng)作為國際標(biāo)準(zhǔn)予以應(yīng)用。圖像處理=Photoshop?第2頁,共100頁,2023年,2月20日,星期六
針對不同的領(lǐng)域需要不同的圖像處理算法,因此掌握一門高級(jí)語言來編寫自己的圖像處理程序,MATLAB無疑是一個(gè)不錯(cuò)的選擇。第3頁,共100頁,2023年,2月20日,星期六
2.1Matlab簡介
Matlab(MatrixLaboratory)是當(dāng)今很流行的科學(xué)計(jì)算軟件。信息技術(shù)、計(jì)算機(jī)技術(shù)發(fā)展到今天,科學(xué)計(jì)算在各個(gè)領(lǐng)域得到了廣泛的應(yīng)用,在諸如控制論、時(shí)間序列分析、系統(tǒng)仿真、圖像信號(hào)處理等方面產(chǎn)生了大量的矩陣及其他計(jì)算問題。Matlab軟件適時(shí)推出,為人們提供了一個(gè)方便的數(shù)值計(jì)算和動(dòng)態(tài)仿真平臺(tái)。第4頁,共100頁,2023年,2月20日,星期六
Matlab簡介-特點(diǎn)1高效、簡單的程序環(huán)境2強(qiáng)大的數(shù)值運(yùn)算功能3豐富的工具箱Matlab是一個(gè)交互式的系統(tǒng),其開發(fā)環(huán)境是MATLAB語言的基礎(chǔ)和核心部分,全部功能都能在開發(fā)環(huán)境中實(shí)現(xiàn)。提供大量的矩陣及其它運(yùn)算函數(shù),方便地進(jìn)行一些很復(fù)雜的計(jì)算,而且運(yùn)算效率極高。Matlab命令和數(shù)學(xué)中的符號(hào)、公式非常接近,可讀性強(qiáng),容易掌握。根據(jù)各專門領(lǐng)域中的特殊需要提供了許多可選的工具箱,已有涉及數(shù)學(xué)、控制、通信、信號(hào)處理、圖像處理、經(jīng)濟(jì)、地理等多種學(xué)科的20多種Matlab工具箱投入應(yīng)用。第5頁,共100頁,2023年,2月20日,星期六
可以在提示符后鍵入各種命令變量管理中心,可以顯示變量的名稱、尺寸、字節(jié)和類別等信息。提供當(dāng)前路徑下文件的操作。顯示已執(zhí)行過的命令及相應(yīng)時(shí)間。系統(tǒng)中全部程序和幫助文件的管理和啟動(dòng)功能。Matlab簡介-開發(fā)環(huán)境第6頁,共100頁,2023年,2月20日,星期六
Matlab簡介-M文件Matlab通常使用命令驅(qū)動(dòng)方式,當(dāng)單行命令輸入時(shí),Matlab立即處理并顯示結(jié)果,同時(shí)將運(yùn)行說明和命令存入歷史命令窗口。Matlab語句的磁盤文件稱作M文件,因?yàn)檫@些文件名的末尾是.M形式。M文件有兩種類型:命令(Script)文件
函數(shù)(function)文件第7頁,共100頁,2023年,2月20日,星期六
命令(Script)文件第一類型M文件稱為命令(Script)文件,特點(diǎn)如下:(1)最簡單的M文件,它是一系列命令、語句的簡單組合;(2)沒有輸入和輸出參數(shù);(3)順序執(zhí)行文件后變量是全局變量,保存在工作空間中;(4)可以直接運(yùn)行。第8頁,共100頁,2023年,2月20日,星期六
例:%繪制花瓣
theta=-pi:0.01:pi;rho(1,:)=2*sin(5*theta).^2;rho(2,:)=cos(10*theta).^3;rho(3,:)=sin(theta).^2;rho(4,:)=5*cos(3.5*theta).^3;fork=1:4subplot(2,2,k),polar(theta,rho(k,:))end命令(Script)文件第9頁,共100頁,2023年,2月20日,星期六
運(yùn)行方式(1)將所有命令復(fù)制粘貼到命令行窗口,按回車執(zhí)行。(2)在M文件編輯器中選擇“Debug”,再選“Run”運(yùn)行,或直接按“F5”運(yùn)行程序。(3)在命令行中鍵入文件名,再回車,注意不要加擴(kuò)展名“.m”。命令(Script)文件第10頁,共100頁,2023年,2月20日,星期六
M文件命名時(shí)不要用純數(shù)字,這樣會(huì)導(dǎo)致錯(cuò)誤的結(jié)果。若有一個(gè)名為“1.m”的M文件,運(yùn)行后的結(jié)果只能是1。注意第11頁,共100頁,2023年,2月20日,星期六
函數(shù)(Function)文件函數(shù)文件的特點(diǎn)如下:(1)以function為引導(dǎo);(2)可以接受輸入、輸出參數(shù);(3)內(nèi)部變量為局部變量,運(yùn)行完被釋放。(4)不能直接運(yùn)行,必須調(diào)用。第12頁,共100頁,2023年,2月20日,星期六
函數(shù)(Function)文件functionX=total(n)%total計(jì)算從1到n的n個(gè)數(shù)之和%如果n比1小,則提示錯(cuò)誤。ifn<1error('Inputmustbelargerthan1');endk=1:n;X=sum(k);函數(shù)定義行function函數(shù)名,輸入變量,輸出變量注釋行:在命令窗口鍵入helptotal后顯示出來.顯示內(nèi)容為連續(xù)的若干個(gè)%右邊的文字。函數(shù)體:包括函數(shù)的全部程序代碼第13頁,共100頁,2023年,2月20日,星期六
注意函數(shù)文件編寫完之后,保存的文件名必須與函數(shù)名同名!第14頁,共100頁,2023年,2月20日,星期六
2.2Matlab常用的基本命令(1)全0矩陣A=zeros(n):生成n×n的全0矩陣;A=zeros(m,n):生成m×n的全0矩陣;A=zeros(a1,a2,a3,…):生成a1×a2×a3×…的全0矩A=zeros(size(B)):生成與矩陣B大小相同的全0矩陣。1.常用矩陣的生成第15頁,共100頁,2023年,2月20日,星期六
(2)全1矩陣A=ones(n):生成n×n的全1矩陣;A=ones(m,n):生成m×n的全1矩陣;A=ones([m,n]):生成m×n的全1矩陣;A=ones(a1,a2,a3,…):生成a1×a2×a3×…的全1矩陣;A=onse(size(B)):生成與矩陣B大小相同的全1矩陣。第16頁,共100頁,2023年,2月20日,星期六
(3)單位矩陣A=eye(n):生成n×n的單位矩陣;A=eye(m,n):生成m×n的單位矩陣;A=eye([m,n]):生成m×n的單位矩陣;A=eye(size(B)):生成與矩陣B大小相同的單位矩陣。第17頁,共100頁,2023年,2月20日,星期六
(4)均勻分布的隨機(jī)矩陣A=rand(n):生成n×n的隨機(jī)矩陣;A=rand(m,n):生成m×n的隨機(jī)矩陣;A=rand([m,n]):生成m×n的隨機(jī)矩陣;A=rand(a1,a2,a3,…):生成a1×a2×a3×…的隨機(jī)矩陣;A=rand(size(B)):生成與矩陣B大小相同的隨機(jī)矩陣。第18頁,共100頁,2023年,2月20日,星期六
(5)正態(tài)分布的隨機(jī)矩陣A=randn(n):生成n×n的隨機(jī)矩陣;A=randn(m,n):生成m×n的隨機(jī)矩陣;A=randn([m,n]):生成m×n的隨機(jī)矩陣;A=randn(a1,a2,a3,…):生成a1×a2×a3×…的隨機(jī)矩陣;A=randn(size(B)):生成與矩陣B大小相同的隨機(jī)矩陣。第19頁,共100頁,2023年,2月20日,星期六
在Matlab中,可以采用多種不同的方式生成矩陣。2.簡單矩陣的生成(1)直接輸入矩陣元素
對于較小的簡單矩陣,從鍵盤上直接輸入矩陣是最常用的數(shù)值矩陣創(chuàng)建方法,需要遵循以下幾個(gè)基本原則:
①矩陣每行的元素之間必須用空格或逗號(hào)分開;
②在矩陣中,采用分號(hào)或回車表明每行的結(jié)束;
③整個(gè)輸入矩陣必須包含在方括號(hào)中。第20頁,共100頁,2023年,2月20日,星期六
用Matlab生成的矩陣存儲(chǔ)成二進(jìn)制文件或包含數(shù)值數(shù)據(jù)的文本文件可以生成矩陣。文本文件中,數(shù)據(jù)必須排成一個(gè)數(shù)據(jù)表,數(shù)據(jù)之間用空格分隔,文件的每行包含矩陣的一行,并且每行的元素個(gè)數(shù)必須相等。(2)從外部數(shù)據(jù)文件調(diào)入矩陣元素第21頁,共100頁,2023年,2月20日,星期六
當(dāng)矩陣的尺寸較大時(shí),直接在命令窗口輸入元素就顯得比較笨拙,容易出現(xiàn)錯(cuò)誤且不便修改。為了解決這個(gè)問題,按照原來的創(chuàng)建原則寫入一個(gè)M文件,運(yùn)行該M文件,即將矩陣調(diào)用到工作空間。(3)利用用戶文件創(chuàng)建的M文件矩陣第22頁,共100頁,2023年,2月20日,星期六
Matlab可以采用多種不同的方式生成向量。(1)利用冒號(hào)“:”生成向量
冒號(hào)“:”是Matlab中常用算子之一,不僅可以作數(shù)組下標(biāo),對數(shù)組元素進(jìn)行引用、增加和刪除,還可以用來生成向量。3.向量的生成第23頁,共100頁,2023年,2月20日,星期六
冒號(hào)“:”使用下列格式生成均勻等分向量。x=j:k如果j<k,則生成向量x=[j,j+1,j+2,…,k];如果j>k,則生成空向量x=[];
x=j:i:k如果i>0且j<k或i<0且j>k,則生成向量x=[j,j+i,j+2i,…,k];如果i>0且j>k或i<0且j<k,則生成空向量x=[];第24頁,共100頁,2023年,2月20日,星期六
Matlab常用命令clear
工作空間中清除所有變量clc
清除命令窗口中顯示內(nèi)容help<命令名>
獲得在線幫助命令功能
clf
清除圖形窗口內(nèi)容
who
列出當(dāng)前工作空間中的變量whos
列出當(dāng)前工作空間中的變量及信息第25頁,共100頁,2023年,2月20日,星期六
補(bǔ)充:矩陣的基本操作
*diag(A)-返回矩陣A對角元素成列向量;*diag(v)-以向量v作對角元素創(chuàng)建矩陣;
*flipud(A)-矩陣上下翻轉(zhuǎn);
*fliplr(A)-矩陣左右翻轉(zhuǎn);
*rot90(A)-矩陣逆時(shí)針翻轉(zhuǎn)90度;*tril(A)-提取矩陣A的下三角矩陣;*triu(A)-提取矩陣A的上三角矩陣。1.利用矩陣創(chuàng)建矩陣第26頁,共100頁,2023年,2月20日,星期六
*x=[12345]%產(chǎn)生1×5的數(shù)組
*b=x(3)%尋訪數(shù)組x的第3個(gè)元素
*b=x([125])%尋訪x的第1、2、5元素
*b=x(1:3)%尋訪前三個(gè)元素
*b=x(3:end)%尋訪第三個(gè)元素到最后一個(gè)
*b=x(find(x>3))%由大于3的元素構(gòu)成數(shù)組
*b=x(3:-1:1)%由前3個(gè)數(shù)倒排成數(shù)組
*b=x([12344321])%對元素的重復(fù)訪問2.尋訪矩陣中的數(shù)據(jù)第27頁,共100頁,2023年,2月20日,星期六
*x=[1,2,3;4,5,6;7,8,9]%產(chǎn)生3×3的矩陣
*b=x(find(x>4))%大于4的元素構(gòu)成數(shù)組
*x(2,2)=10%第2行第2列值改為10
*x(3,:)=20%第3行的值改為20
*x=ones(5)%產(chǎn)生5×5全為1的矩陣
*x(2:4,2:4)=0%第2、3、4行的第2、3、4列元素改03.修改數(shù)據(jù)第28頁,共100頁,2023年,2月20日,星期六
插入:x=4:6;A=[x-3;x;x+3]%插入創(chuàng)建新矩陣提取:C=A(1:2,2:3)%提取A的部分拉長:D=A(:)%拉長成列置空:A(:,2)=[]%刪除A的第二列4.插入、提取、拉長及置空第29頁,共100頁,2023年,2月20日,星期六
A=[3:6;1:4]%產(chǎn)生2×4的矩陣s=size(A)%返回s為[行數(shù)列數(shù)][r,c]=size(A)%返回r為行數(shù),c為列數(shù)r=size(A,1)%只返回行數(shù)c=size(A,2)%只返回列數(shù)n=length(A)%返回行數(shù)、列數(shù)最大者5.矩陣的規(guī)模第30頁,共100頁,2023年,2月20日,星期六
練習(xí)已知:矩陣A=[3346242457753211]試對矩陣矩陣A進(jìn)行操作得到以下結(jié)果。
①返回矩陣A的大?。虎诜祷鼐仃嘇1=[57765],A2=[3346];③返回矩陣A3=[1123A4=[3346A5=[34657752424224424288885756433]3211]311]第31頁,共100頁,2023年,2月20日,星期六
2.3圖像處理工具箱簡介Matlab是一種基于向量(數(shù)組)而不是標(biāo)量的高級(jí)程序語言,因而Matlab從本質(zhì)上就提供了對圖像的支持。數(shù)字圖像實(shí)際上是一組有序離散的數(shù)據(jù),使用Matlab可以對這些離散數(shù)據(jù)形成的矩陣進(jìn)行一次性的處理。第32頁,共100頁,2023年,2月20日,星期六
Matlab對圖像的處理功能主要集中在它的圖像處理工具箱(ImageProcessingToolbox)中。圖像處理工具箱是由一系列支持圖像處理操作的函數(shù)組成,可以進(jìn)行諸如幾何操作、線性濾波和濾波器設(shè)計(jì)、圖像變換、圖像分析與圖像增強(qiáng)、數(shù)學(xué)形態(tài)學(xué)處理等圖像處理操作。第33頁,共100頁,2023年,2月20日,星期六
圖像處理工具箱主要有:*ImageAcquisitionToolbox
*ImageProcessingToolbox
*SignalProcessingToolbox
*WaveletToolbox
*StatisticsToolbox
*BioinformaticsToolbox
*MatlabCompiler
*
MatlabCOMbuilder第34頁,共100頁,2023年,2月20日,星期六
2.4Matlab中的圖像類型及類型轉(zhuǎn)換Matlab中的數(shù)字圖像是由一個(gè)或多個(gè)矩陣表示的,Matlab強(qiáng)大的矩陣運(yùn)算功能完全可以應(yīng)用于圖像,那些適用于矩陣運(yùn)算的語法對Matlab中的數(shù)字圖像同樣適用。2.4.1圖像和圖像數(shù)據(jù)缺?。篸ouble(64位浮點(diǎn)數(shù))uint8(無符號(hào)8位整型)第35頁,共100頁,2023年,2月20日,星期六
本節(jié)的講授思路圖像的四種類型圖像的讀取、寫入、信息查詢圖像的顯示圖像類型轉(zhuǎn)換第36頁,共100頁,2023年,2月20日,星期六
2.4.2圖像處理工具箱所支持的圖像類型圖像處理工具箱支持4種圖像類型,它們是:
真彩色圖像(RGBimages)索引色圖像(indeximages)灰度圖像(intensityimages)二值圖像(binaryimages)此外,Matlab還支持由多幀圖像組成的圖像序列。第37頁,共100頁,2023年,2月20日,星期六
1.真彩色圖像真彩色圖像用R、G、B3個(gè)分量表示1個(gè)像素的顏色,所以對1個(gè)尺寸為m×n的真彩色圖像來說,其數(shù)據(jù)結(jié)構(gòu)就是一個(gè)m×n×3的多維數(shù)組。如果要讀取圖像中(100,50)處的像素值,可以查看三元組(100,50,1∶3)。真彩色圖像可用雙精度存儲(chǔ),此時(shí)亮度值的范圍是[0,1]。常用的存儲(chǔ)方法是用無符號(hào)整型存儲(chǔ),亮度值的范圍為[0,255]。第38頁,共100頁,2023年,2月20日,星期六
真彩色圖像數(shù)據(jù)格式雙精度類:Double(每個(gè)像素占8個(gè)字節(jié))
整數(shù)類:Uint8(每個(gè)像素占1個(gè)字節(jié))數(shù)組大?。簃×n×3(:,:,1)-紅色分量(:,:,2)-綠色分量(:,:,3)-藍(lán)色分量像素取值:[0,1]
數(shù)組大?。簃×n×3(:,:,1)-紅色分量(:,:,2)-綠色分量(:,:,3)-藍(lán)色分量像素取值:[0,255]第39頁,共100頁,2023年,2月20日,星期六
圖2.2真彩色圖像的結(jié)構(gòu)第40頁,共100頁,2023年,2月20日,星期六
2.索引色圖像索引圖像是把像素值直接作為RGB調(diào)色板下標(biāo)的圖像。Matlab中的索引色圖像包含2個(gè)結(jié)構(gòu),一個(gè)是調(diào)色板map;另外一個(gè)是圖像數(shù)據(jù)矩陣X。調(diào)色板是一個(gè)有3列和若干行的色彩映像矩陣,矩陣的每行都代表一種色彩,通過3個(gè)分別代表紅、綠、藍(lán)顏色強(qiáng)度的雙精度數(shù),形成一種特定的顏色。圖像數(shù)據(jù)可以是uint8或是雙精度的。需要注意的是Matlab中的調(diào)色板的色彩強(qiáng)度是[0,1]中的浮點(diǎn)數(shù),0代表最暗,1代表最亮。第41頁,共100頁,2023年,2月20日,星期六
圖2.3索引色圖像的結(jié)構(gòu)第42頁,共100頁,2023年,2月20日,星期六
索引圖像的數(shù)據(jù)格式雙精度類:Double(每個(gè)元素占8個(gè)字節(jié))
整數(shù)類:Uint8(每個(gè)元素占1個(gè)字節(jié))
圖像數(shù)組大小:m×n圖像元素取值:[1,p]調(diào)色板矩陣:p×3圖像數(shù)組大?。簃×n圖像元素取值:[0,p-1]調(diào)色板矩陣:p×3第43頁,共100頁,2023年,2月20日,星期六
3.灰度圖像存儲(chǔ)灰度圖像只需要一個(gè)數(shù)據(jù)矩陣,數(shù)據(jù)類型可以是double也可以是uint8。存儲(chǔ)時(shí)會(huì)使用一個(gè)默認(rèn)的調(diào)色板來顯示圖像。第44頁,共100頁,2023年,2月20日,星期六
4.二值圖像與灰度圖像相同,二值圖像只需一個(gè)數(shù)據(jù)矩陣,每個(gè)像素只有2個(gè)灰度值??梢圆捎胾int8或double類型存儲(chǔ),工具箱中以二值圖像作為返回結(jié)果的函數(shù)都使用uint8類型。第45頁,共100頁,2023年,2月20日,星期六
5.圖像序列(不能用于RGB圖)圖像處理工具箱支持將多幀圖像連接成圖像序列。可以使用Matlab的cat函數(shù)將分散的圖像合并成圖像序列,前提是各圖像的尺寸必須相同,如果是索引色圖像,調(diào)色板也必須是一樣的。比如要將A1、A2、A3、A4、A5五幅圖像合并成一個(gè)圖像序列A,Matlab語句為A=cat(1,A1,A2,A3,A4,A5),1維,縱向排列A=cat(2,A1,A2,A3,A4,A5),2維,橫向排列A=cat(3,A1,A2,A3,A4,A5),3維,豎向排列第46頁,共100頁,2023年,2月20日,星期六
圖像序列也可以產(chǎn)生一個(gè)四維的數(shù)組,圖像幀的序號(hào)在圖像的長、寬、顏色深度之后構(gòu)成第四維。一個(gè)包含了5幅400×300真彩色圖像的序列,其大小為400×300×3×5一個(gè)包含了5幅400×300灰度或是索引圖像的序列,其大小為400×300×1×5A=cat(4,A1,A2,A3,A4,A5),4維提取其中一幀(如第2幀)A(:,:,:,2)第47頁,共100頁,2023年,2月20日,星期六
2.4.3圖像文件的讀寫和查詢
imread:讀取圖形文件格式的圖像;
imwrite:寫入圖形文件格式的圖像;
imfinfo:獲取圖像的信息;
load\save:以Mat文件加載或保存矩陣數(shù)據(jù);
imshow:顯示加載到Matlab中的圖像。第48頁,共100頁,2023年,2月20日,星期六
利用函數(shù)imread可以完成圖形圖像文件的讀取操作,其語法如下,一般:A=imread(filename,fmt)索引圖像:[X,map]=imread(filename,fmt)[X,map]=imread(‘m83.tif’,‘tif’)1.圖形圖像文件的讀取第49頁,共100頁,2023年,2月20日,星期六
imread函數(shù)可以從任何Matlab支持的圖形文件中以特定的位寬讀取圖像。通常情況下,讀取的大多數(shù)圖像均為8bit。當(dāng)這些圖像加載到內(nèi)存中時(shí),Matlab就將其存儲(chǔ)在類uint8中。
對于索引圖像來說,即使圖像陣列的本身為uint8或uint16,imread函數(shù)仍然將顏色映像表讀取并存儲(chǔ)到一個(gè)雙精度的浮點(diǎn)類型的陣列中。注意第50頁,共100頁,2023年,2月20日,星期六
2.圖形圖像文件的寫入(保存)利用imwrite函數(shù)可以完成圖形圖像文件的寫入操作,其語法為:imwrite(A,filename,fmt)imwrite(X,map,filename,fmt)Matlab缺省的保存方式:uint8數(shù)據(jù)格式。在Matlab中使用的許多圖像都是8bit,并且大多數(shù)的圖像文件并不需要雙精度的浮點(diǎn)數(shù)據(jù)。imwrite(X,map,‘lena.bmp’,‘bmp’)第51頁,共100頁,2023年,2月20日,星期六
3.圖形圖像文件信息的查詢Matlab提供了imfinfo函數(shù)用于從圖像文件中查詢其信息。所獲取的信息依文件類型的不同而不同,但至少包含下面的內(nèi)容。
文件名文件格式文件格式的版本號(hào)文件修改時(shí)間文件的字節(jié)大小圖像的寬度(像素)圖像的長度(像素)每個(gè)像素的位數(shù)圖像類型(即該圖像是RGB(真彩)圖像、灰度圖像還是索引圖像)第52頁,共100頁,2023年,2月20日,星期六
查詢圖像信息
imfinfo('autumn.tif')第53頁,共100頁,2023年,2月20日,星期六
2.4.4圖像文件的顯示Matlab7.0圖像處理工具箱提供了一個(gè)高級(jí)的圖像顯示函數(shù)imshow。其語法格式如下,灰度圖像imshow(I)imshow(I,n)imshow(I,[lowhigh])二值圖像imshow(BW)索引圖像imshow(X,map)真彩色圖像imshow(RGB)其中n為灰度級(jí)數(shù)目,缺省值為256。[lowhigh]為圖像數(shù)據(jù)的值域。第54頁,共100頁,2023年,2月20日,星期六
索引圖像包括一個(gè)數(shù)據(jù)矩陣X,一個(gè)顏色映像矩陣map。其中map是一個(gè)p×3的數(shù)據(jù)矩陣,其每個(gè)元素的值均為[0,1]之間雙精度浮點(diǎn)型數(shù)據(jù)。map矩陣的每一行分別表示紅色、綠色和藍(lán)色的顏色值。而數(shù)據(jù)矩陣X可以是double和uint8型的,調(diào)用格式如下:
imshow(X,map)
1.索引圖像及其顯示第55頁,共100頁,2023年,2月20日,星期六
對于X的每個(gè)像素,imshow顯示存儲(chǔ)在map相應(yīng)行中的顏色。圖像矩陣中數(shù)值和調(diào)色板之間的關(guān)系依賴于圖像矩陣的類型(double、uint8)。雙精度類型:數(shù)值1→調(diào)色板的第1行,數(shù)值2→第2行;uint8類型:數(shù)值0→調(diào)色板的第1行,數(shù)值1→第2行,以此類推。第56頁,共100頁,2023年,2月20日,星期六
索引圖像的double與uint8型123401230000.06270.062700010.29020.6270.6270.38200.35781doubleuint8圖像數(shù)據(jù)調(diào)色板第57頁,共100頁,2023年,2月20日,星期六
索引圖像的每一個(gè)像素都直接映射為調(diào)色板的一個(gè)入口。如果調(diào)色板包含的顏色數(shù)目多于圖像顏色數(shù)目,那么額外的顏色都將被忽略;如果調(diào)色板包含的顏色數(shù)目少于圖像顏色數(shù)目,則超出調(diào)色板顏色范圍的圖像像素都將被設(shè)置為調(diào)色板中的最后一個(gè)顏色。第58頁,共100頁,2023年,2月20日,星期六
例如,如果一幅包含256色的uint8索引圖像,使用一個(gè)僅有16色的調(diào)色板顯示,則所有數(shù)值大于或等于15的像素都將被顯示為調(diào)色板的最后一個(gè)顏色。借助不同的調(diào)色板顯示圖像,課本P34,列出了10個(gè)產(chǎn)生調(diào)色板的函數(shù),X=imread('cameraman.tif');map=pink(256);imshow(X,map);colorbar;%顯示顏色條第59頁,共100頁,2023年,2月20日,星期六
2.灰度圖像及其顯示一幅灰度圖像是一個(gè)數(shù)據(jù)矩陣I,其中數(shù)據(jù)均代表了在一定范圍內(nèi)的顏色灰度值。Matlab把灰度圖像用數(shù)據(jù)矩陣的形式進(jìn)行存儲(chǔ),每個(gè)元素則表示了圖像中的每個(gè)像素。矩陣元素可以是doudle、uint8整數(shù)類型。多數(shù)情況下,灰度圖像很少和顏色映像表一起保存,但在顯示灰度圖像時(shí),Matlab仍然在后臺(tái)使用系統(tǒng)預(yù)定義的缺省灰度顏色映像表。第60頁,共100頁,2023年,2月20日,星期六
(1)灰度圖像顯示最基本的調(diào)用格式
imshow(I)Matlab中imshow函數(shù)使用一個(gè)灰度級(jí)系統(tǒng)調(diào)色板(R=G=B)來顯示灰度圖像。如果I是double型,若像素值為0.0,則顯示為黑色,1.0則顯示為白色,0.0和1.0之間的像素值將顯示為灰影。imshow函數(shù)顯示灰度圖像第61頁,共100頁,2023年,2月20日,星期六
imshow(I,n)例如:以下語句將顯示一幅32個(gè)灰度級(jí)的圖像I。imshow(I,32)(2)使用明確指定的灰度級(jí)數(shù)目(3)某些情況下,可能將一些超出數(shù)據(jù)慣例范圍的數(shù)據(jù)顯示為一幅灰度圖像☆對于double型數(shù)組為[0,1],對于uint8型數(shù)組為[0,255]第62頁,共100頁,2023年,2月20日,星期六
為了將超過數(shù)據(jù)范圍的數(shù)據(jù)顯示為圖像,用戶可以直接定義數(shù)據(jù)范圍,其調(diào)用格式如下,
imshow(I,[lowhigh])其中l(wèi)ow、high分別為數(shù)據(jù)的最小和最大值。
如果用戶使用一個(gè)空矩陣[]指定數(shù)據(jù)范圍,imshow將自動(dòng)進(jìn)行數(shù)據(jù)標(biāo)度。第63頁,共100頁,2023年,2月20日,星期六
3.RGB圖像及其顯示用imshow函數(shù)顯示RGB圖像基本的調(diào)用格式如下,imshow(RGB)參數(shù)RGB是一個(gè)m×n×3的數(shù)組。對于RGB中的每一個(gè)像素(r,c),imshow顯示數(shù)值(r,c,1∶3)所描述的顏色。每個(gè)屏幕像素使用24位顏色系統(tǒng)直接顯示真彩圖像,系統(tǒng)給每個(gè)像素的紅、綠、藍(lán)顏色分量分配8位(256級(jí)),這樣就有1000多萬種顏色(224)。第64頁,共100頁,2023年,2月20日,星期六
4.二進(jìn)制圖像及其顯示顯示二進(jìn)制圖像用如下語句,imshow(BW)
在Matlab中,二進(jìn)制圖像是一個(gè)邏輯類,僅包括0和1兩個(gè)數(shù)值,像素0顯示為黑色,像素1顯示為白色。在顯示時(shí),也可以通過NOT(~)命令,對二進(jìn)制圖像進(jìn)行取反,使數(shù)值0顯示為白色,1顯示為黑色。例如:BW=imread(‘circles.png’);imshow(BW);figure,imshow(~BW);顯示的結(jié)果如下圖所示。第65頁,共100頁,2023年,2月20日,星期六
二進(jìn)制圖像顯示效果第66頁,共100頁,2023年,2月20日,星期六
5.直接從磁盤顯示圖像通常,在顯示一幅圖像前首先要調(diào)用imread函數(shù)裝載圖像,將數(shù)據(jù)存儲(chǔ)為Matlab工作平臺(tái)中的一個(gè)或多個(gè)變量。但是,如果不希望在顯示圖像之前裝載圖像,則可以使用以下命令格式直接進(jìn)行圖像文件的顯示,
imshowfilename
其中,filename為要顯示的圖像文件的文件名。imshowrice.pngimshow(‘rice.png’)第67頁,共100頁,2023年,2月20日,星期六
補(bǔ)充:多幅圖像文件的顯示figure,imshow功能:新建一個(gè)圖像窗口,用于顯示新圖像(從而不讓新的圖像覆蓋原來圖像)。1.創(chuàng)建新的圖像窗口,每個(gè)圖像顯示在一個(gè)窗口中調(diào)用imshow函數(shù)顯示圖像,如下頁圖所示。I=imread(′rice.png′)J=filter2([12;-1-2],I)%用模板[12;-1-2]對圖像濾波imshow(I)figure,imshow(J,[])思考:如果沒有figure的話,將產(chǎn)生什么結(jié)果?第68頁,共100頁,2023年,2月20日,星期六
用imshow顯示濾波前后的圖像第69頁,共100頁,2023年,2月20日,星期六
subplot(m,n,k),imshow%繪制并顯示m行n列第k個(gè)子圖
例:X1=imread('rice.png');X2=imread('coins.png');X3=imread('bag.png');subplot(1,3,1),imshow(X1);subplot(1,3,2),imshow(X2);subplot(1,3,3),imshow(X3);2.用子圖、多個(gè)圖像顯示在一個(gè)圖像窗口中第70頁,共100頁,2023年,2月20日,星期六
子圖顯示效果第71頁,共100頁,2023年,2月20日,星期六
補(bǔ)充:多幀圖像的電影片段若一個(gè)tif的圖像文件包含有多幀的圖像,我們一般用immovie來實(shí)現(xiàn)創(chuàng)建電影片段的功能,比如說,以下調(diào)用將根據(jù)多幀索引圖像X創(chuàng)建電影片段。
mov=immovie(X,map)mri=uint8(zeros(128,128,1,27));forframe=1:27[mri(:,:,:,frame),map]=imread('mri.tif',frame);endmov=immovie(mri,map);movie(mov);初始化一個(gè)包括27幀的灰度圖像的文件mri.tif將mri.tif的每一幀讀入圖相應(yīng)的圖像幀中第72頁,共100頁,2023年,2月20日,星期六
2.4.5Matlab圖像類型轉(zhuǎn)換1.圖像類型轉(zhuǎn)換的必要性
對于索引圖像進(jìn)行濾波時(shí),必須把它轉(zhuǎn)換為RGB圖像,否則光對圖像的下標(biāo)進(jìn)行濾波,得到的結(jié)果是毫無意義的。2.各種類型圖像的轉(zhuǎn)換關(guān)系索引圖像灰度圖像真彩圖像二值圖像數(shù)據(jù)矩陣第73頁,共100頁,2023年,2月20日,星期六
工具箱中提供了許多圖像類型轉(zhuǎn)換的函數(shù),從函數(shù)名稱可以看出它們的功能。1.dither函數(shù)
功能:圖像抖動(dòng),利用僅能顯示少數(shù)彩色的設(shè)備顯示含有豐富顏色信息圖像的一種非常有用的方法。該函數(shù)可以把RGB圖像轉(zhuǎn)換成索引圖像或把灰度圖像轉(zhuǎn)換成二值圖像。
格式:X=dither(RGB,map)BW=dither(I)第74頁,共100頁,2023年,2月20日,星期六
抖動(dòng)效果圖第75頁,共100頁,2023年,2月20日,星期六
(1)RGB圖像抖動(dòng)成索引圖像
例:I=imread('autumn.tif');map=pink(1024);X=dither(I,map);imshow(I);figure,imshow(X,map);colorbar第76頁,共100頁,2023年,2月20日,星期六
抖動(dòng)效果圖第77頁,共100頁,2023年,2月20日,星期六
(2)灰度圖像抖動(dòng)成二值圖像例:I=imread('rice.png');bw=dither(I);imshow(I);figure,imshow(bw);第78頁,共100頁,2023年,2月20日,星期六
抖動(dòng)效果圖第79頁,共100頁,2023年,2月20日,星期六
功能:將灰度圖像轉(zhuǎn)換成索引圖像。格式:[X,map]=gray2ind(I,n)
按照指定的灰度級(jí)n把灰度圖像I轉(zhuǎn)換成索引圖像X,map為gray(n),n的缺省值為64。例:I=imread('cameraman.tif');[X,map]=gray2ind(I,16);imshow(X,map);figure,imshow(I);2.gray2ind函數(shù)第80頁,共100頁,2023年,2月20日,星期六
功能:通過設(shè)定閾值將灰度圖像轉(zhuǎn)換成索引色圖像。格式:X=grayslice(I,n)
例:I=imread('cameraman.tif');X=grayslice(I,16);imshow(I);figure,imshow(X,bone(16));
3.grayslice函數(shù)第81頁,共100頁,2023年,2月20日,星期六
功能:將灰度圖像、索引色圖像和真彩色圖像轉(zhuǎn)化成二值圖像。
格式:BW=im2bw(I,level)BW=im2bw(X,map,level)BW=im2bw(RGB,level)
level是一個(gè)歸一化閾值,取值在[0,1]。4.im2bw函數(shù)例:真彩色轉(zhuǎn)換為二值圖像I=imread('autumn.tif');X=im2bw(I,0.5);imshow(I);figure,imshow(X);第82頁,共100頁,2023年,2月20日,星期六
功能:將索引圖像轉(zhuǎn)換成灰度圖像。格式:I=ind2gray(X,map)5.ind2gray函數(shù)索引圖像轉(zhuǎn)換成灰度圖像第83頁,共100頁,2023年,2月20日,星期六
功能:將索引色圖像轉(zhuǎn)換成真彩色圖像。格式:RGB=ind2rgb(X,map)例:[I,map]=imread('m83.tif');X=ind2rgb(I,map);imshow(I,map);figure,imshow(X);6.ind2rgb函數(shù)第84頁,共100頁,2023年,2月20日,星期六
功能:將一個(gè)數(shù)據(jù)矩陣轉(zhuǎn)換成一幅灰度圖像。格式:I=mat2gray(A,[aminamax])I=mat2gray(A)7.mat2gray函數(shù)功能:將一幅真彩色圖像轉(zhuǎn)換成灰度圖像。
格式:I=rgb2gray(RGB)
例:RGB=imread('autumn.tif');X=rgb2gray(RGB);imshow(RGB);figure,imshow(X);
8.rgb2gray函數(shù)第85頁,共100頁,2023年,2月20日,星期六
轉(zhuǎn)換效果圖第86頁,共100頁,2023年,2月20日,星期六
功能:將真彩色圖像轉(zhuǎn)換成索引色圖像。
格式:
[X,map]=rgb2ind(RGB,n)
例:RGB=imread('autumn.tif');[X,map]=rgb2ind(RGB,128);imshow(RGB);figure,imshow(X,map);
9.rgb2ind函數(shù)第87頁,共100頁,2023年,2月20日,星期六
補(bǔ)充:圖像的紋理映射
對于一個(gè)真彩色圖像來說,warp函數(shù)可以把它通過圖像紋理映射創(chuàng)建一個(gè)三維效果。[x,y,z]=cylinder;%創(chuàng)建一個(gè)圓柱面I=imread(‘a(chǎn)utumn.tif’);%讀取一個(gè)真彩色圖像warp(x,y,z,I);%把圖像映射成圓柱體的表面紋理第88頁,共100頁,2023年,2月20日,星期六
補(bǔ)充:圖像的空間變換
將輸入圖像的像素映射到輸出圖像的新位置,如調(diào)整圖像大小、旋轉(zhuǎn)、剪切等?!髡{(diào)整圖像的大小-imresize
Y=imresize(X,M);其中M>1表示放大,0<M<1表示縮小。
Y=imresize(X,[MN]);產(chǎn)生一個(gè)指定的M×N大小的圖像Y。第89頁,共100頁,2023年,2月20日,星期六
△圖像的旋轉(zhuǎn)-imrotate
Y=imrotate(X,angle,method);Y=i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 防火安全培訓(xùn)會(huì)議課件
- 都勻消防安全培訓(xùn)中心課件
- 閱兵背后的故事
- 腦血管疾病 課件
- 少兒美術(shù)教學(xué):繪畫+手工《工具箱》
- 《汽車美容》課件-01 項(xiàng)目一 汽車美容行業(yè)概述
- 新年糖果禮盒課件
- 全國職業(yè)教育周活動(dòng)實(shí)施框架
- 超聲設(shè)備維護(hù)保養(yǎng)規(guī)范
- 精神病患急性期治療方案培訓(xùn)
- 杭州市失業(yè)人員登記表
- 新員工入職背景調(diào)查表 (職員)
- 云計(jì)算環(huán)境下中小企業(yè)會(huì)計(jì)信息化建設(shè)問題
- 15D501建筑物防雷設(shè)施安裝圖集
- 社區(qū)老人心理疏導(dǎo)服務(wù)記錄表
- 屈光不正診療規(guī)范
- 國際貿(mào)易采購合同(中英文)
- 建設(shè)部環(huán)衛(wèi)勞動(dòng)定額
- 金蝶云星空 V7.2-產(chǎn)品培訓(xùn)-PLM領(lǐng)域-文檔管理
- 溶洞注漿施工方案樣本
- GB/T 25852-20108級(jí)鏈條用鍛造起重部件
評(píng)論
0/150
提交評(píng)論