关于matlab的图像显示方法
關(guān)于圖像的數(shù)字表示
圖像從色彩和主要分成灰度圖像和彩色圖像,我的題目是對(duì)灰度圖像的處理,灰度圖像可以用三基色表示參數(shù)的二維數(shù)組進(jìn)行表示,對(duì)于標(biāo)準(zhǔn)的長(zhǎng)方形點(diǎn)陣取樣每一個(gè)元素表示一個(gè)圖像像素點(diǎn)的顏色信息,圖片文件一般來說就是按照數(shù)二維組排列構(gòu)成文件,然后在matlab中使用imread進(jìn)行讀取并處理。
目前已經(jīng)測(cè)試過的imread支持的格式有BMP、PNG、TIF、JPG
考慮之后方便C語言實(shí)現(xiàn)就只對(duì)BMP格式進(jìn)行深入學(xué)習(xí)
BMP格式(Bitmap)
BMP是windows操作系統(tǒng)中的標(biāo)準(zhǔn)圖像文件格式,特點(diǎn)是包含的信息比較豐富,是無損失的圖像文件格式,其投頭的格式為:
| 0000H | 文件標(biāo)識(shí) | 2 | 識(shí)別位圖的類型 |
| 0002H | File Size | 4 | 表示文件的大小,單位是B |
| 0006H | Reserved | 4 | 保留信息,用處目前不明只知道必須為0 |
| 000AH | Bitmao Data Offset | 4 | 從文件開始到位圖數(shù)據(jù)之間的偏移量 |
| 000EH | Bitmap Header Size | 4 | 位圖的信息頭的長(zhǎng)度,一般是28H |
| 0012H | Width | 4 | 位圖的寬度,單位是像素 |
| 0016H | Height | 4 | 位圖的高度,單位是像素 |
| 001AH | Planes | 4 | 位圖的位面數(shù),肯定是1 |
| 001CH | Bit per pixel | 2 | 每個(gè)像素的位數(shù),1\4\8\16\24\32,分別表示2的N次方的色位,單色圖像默認(rèn)為1,即只有黑白 |
| 001EH | Comression | 4 | 壓縮說明,0:不壓縮;1:使用8位RLE壓縮方式;2:使用4位RLE壓縮方式;3:Bitfields-位域存放方式 |
| 0022H | Bitmap Data SIze | 4 | 用字節(jié)數(shù)字表示的位圖數(shù)據(jù)的大小,必須是4的倍數(shù) |
| 0026H | HResolution | 4 | 用像素表示水平分辨率 |
| 002AH | VResolution | 4 | 用像素表示垂直分辨率 |
| 002EH | Colors | 4 | 位圖使用的顏色數(shù) |
| 0032H | Important Colors | 4 | 指定的重要的顏色數(shù),當(dāng)數(shù)值等于Colors的數(shù)值的時(shí)候表示所有顏色一樣重要 |
| ____H | Palette | N*4 | 調(diào)色板規(guī)范,四個(gè)字節(jié)分別用來描述藍(lán)色、綠色、紅色和填充符的數(shù)值,在彩色圖像的處理中就是各個(gè)通道的作用 |
| ____H | Bitmap Data | – | 包含掃描的信息,掃描順序是從右向左,從上到下 |
亮度圖像
亮度圖像是一個(gè)二維數(shù)組矩陣,數(shù)據(jù)類型可以是double、uint8、uint16類型,范圍分別是[0,1]、[0,255]、[0,65535],風(fēng)別代表著二值圖像、8位RGB圖像、16位RGB圖像,對(duì)于二值圖像就應(yīng)該用double數(shù)據(jù)類型讀取數(shù)組。
關(guān)于MATLAB中文件的讀取和輸出
imread
MATLAB中主要使用imread函數(shù)從圖片中讀取圖像信息使用方法為:
[a,map]=imread['文件名']對(duì)于BMP格式的圖片,低于24b的圖片讀取的是索引圖像,24b的BMP格式讀取的是RGB圖像,32b讀取的是24b的RGB圖像和8b的填充數(shù)據(jù)。
對(duì)于灰度圖像可以用
(正在嘗試使用)
imwrite
MATLAB提供了imwrite來對(duì)舉證組成的圖像文件進(jìn)行保存,調(diào)用方式為:
imwrite(A,文件名,格式)格式可以省略,直接加在文件名后,表示灰度圖像時(shí)A表示二維舉證,當(dāng)圖像為真彩RGB圖像時(shí),A是MN3的舉證,與imread相對(duì)應(yīng)的,imwrite也可以保存為讀取相同的格式,這里嘗試了.bmp,.jpg,.png,.tif格式可正常運(yùn)行。
imshow和image
使用方法:
imshow(I)I的要求與imwrite使用的要求一樣,直接使用imshow可以顯示出真實(shí)尺寸的圖片,像素與物理顯示器的像素對(duì)應(yīng)。
可以使用figure,imshow(X,'berder','tight');屬性控制去掉窗口的邊框。
而image函數(shù)則是附帶坐標(biāo)的圖像函數(shù)顯示,對(duì)于位圖現(xiàn)實(shí)的就是像素點(diǎn)數(shù)量
其他
參考教程找到了一段直線檢測(cè)的代碼:
clc,close BW=imread('test_1.tif'); BW=rgb2gray(BW); thresh=[0.01,0.17]; sigma=2;%定義高斯參數(shù) f = edge(double(BW),'canny',thresh,sigma); figure(1),imshow(f,[]); title('canny 邊緣檢測(cè)'); [H, theta, rho]= hough(f,'RhoResolution', 0.5); %imshow(theta,rho,H,[],'notruesize'),axis on,axis normal %xlabel('\theta'),ylabel('rho'); peak=houghpeaks(H,5); hold on lines=houghlines(f,theta,rho,peak); figure,imshow(f,[]),title('Hough Transform Detect Result'),hold on for k=1:length(lines) xy=[lines(k).point1;lines(k).point2]; plot(xy(:,1),xy(:,2),'LineWidth',4,'Color',[.6 .6 .6]); end效果如下:
正在理解各個(gè)函數(shù)的作用。
總結(jié)
以上是生活随笔為你收集整理的关于matlab的图像显示方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【控制理论】离散及连续的LQR控制算法原
- 下一篇: 人口各省预测模型matlab_基于MAT