MatLab--数字图像处理基础
生活随笔
收集整理的這篇文章主要介紹了
MatLab--数字图像处理基础
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1. 數(shù)字圖像類型
1.1 二值圖像
概念:
二值圖像是指每個像素值為О或為1的數(shù)字圖像, 一般表示為黑白兩色,如圖所示。應用場景
由于只有兩種顏色,只能表示簡單的前景和背景, 二值圖像一般不用來表示自然圖像;但因其易于運算, 多用于圖像處理過程后期的圖像表示, 如用二值圖像表示檢測到的目標模板、 進行文字分析、應用于一些工業(yè)機器視覺系統(tǒng)等。1.2 灰度圖像
概念
灰度圖像中每個像素只有一個強度值,呈現(xiàn)黑、灰、白等色, 如圖2-20所示,圖中共有3×3個像素點,每個像素點呈現(xiàn)強度不一的灰色, 數(shù)值表示為0~255之間的數(shù)。應用場景
灰度圖像沒有色彩,一般也不用于表示自然圖像。 因數(shù)據(jù)量較少,方便處理,很多圖像處理算法都是面向灰度圖像的, 彩色圖像處理的很多算法也是在灰度圖像處理的基礎上發(fā)展而來的。1.3 彩色圖像
概念:
應用場景
彩色圖像色彩豐富,信息量大,目前數(shù)碼產(chǎn)品獲取圖像一般為彩色圖像。1.4 動態(tài)圖形
動態(tài)圖像是相對于靜態(tài)圖像而言。靜態(tài)圖像是指某個瞬間所獲取的圖像, 是一個二維信號,前面所講圖像都是指靜態(tài)圖像。 動態(tài)圖像是由一組靜態(tài)圖像按時間順序排列組成的, 是一個三維信號f(a , y ,t),其中t是時間。 動態(tài)圖像中的一幅靜態(tài)圖像稱為一幀,這一幀可以是灰度圖像, 也可以是彩色圖像。由于人眼的視覺暫留特性(其時值是1/24s), 多幀圖像順序顯示間隔△t≤1/24s 時,產(chǎn)生連續(xù)活動視覺效果。 動態(tài)圖像的快慢由幀率(幀的切換速度)決定 ,電視的幀率在NTSC制式下是30幀/s,在 PAL制式下是25幀/s。動態(tài)圖像作為多幀位圖的組合,數(shù)據(jù)量大,一般要采用壓縮算法來降低數(shù)據(jù)量。
1.5 索引圖像
1.6 不同類型圖像間的互相轉化
式中,Y,I∈[0,255]2. 數(shù)字圖像的數(shù)值描述
數(shù)字圖像的數(shù)值描述是用數(shù)值方式來表示一幅數(shù)字圖像。 矩陣是二維的,所以可用矩陣來描述數(shù)字圖像。 同時,前面已經(jīng)提到,量化值是整數(shù), 因此描述數(shù)字圖像的矩陣一般是整數(shù)矩陣。2.1 常用的坐標系
2.2 數(shù)字圖像的數(shù)據(jù)結構
數(shù)字圖像的存儲一般包括兩部分:文件頭和圖像數(shù)據(jù)。 文件頭是圖像的自我說明,一般包含圖像的維數(shù)、類型、 創(chuàng)建日期和某類標題, 也可以包含用于解釋像素值的顏色表或編碼表(如JPEG文件), 甚至包含如何建立和處理圖像的信息。 圖像數(shù)據(jù)一般為像素顏色值或壓縮后的數(shù)據(jù)。圖像壓縮對于圖像信號來講十分重要。 圖像數(shù)據(jù)量大,許多格式提供了對圖像數(shù)據(jù)的壓縮, 可以使圖像數(shù)據(jù)減少到原來的30%,甚至減少至3%, 具體壓縮率取決于需要的圖像質量和所用的壓縮方法。壓縮方法分為無損壓縮和有損壓縮, 無損壓縮方法在解壓時能完全恢復出原始圖像, 而有損壓縮則不能完全恢復原始圖像。 數(shù)字圖像和符號數(shù)字信息不同, 丟失或改變幾位數(shù)字圖像數(shù)據(jù)不會影響人或機器對圖像內容的理解。2.3 常見數(shù)字圖像的格式
2.3.1 JPEG
2.3.2 GIF
2.3.3 TIFF
2.3.4 PNG
2.3.5 BMP
BMP(即Bitmap)是Window操作系統(tǒng)中的標準圖像文件格式, 可以分成兩類:設備相關位圖(DDB)和設備無關位圖(DIB), 使用非常廣。它采用位映射存儲格式,除了圖像深度可選以外, 不采用其他任何壓縮。因此,BMP文件所占用的空間很大。 BMP文件的圖像深度可選1bit、4bit、8bit及24bit。 BMP文件存儲數(shù)據(jù)時,圖像的掃描方式是從左到右、從下到上的順序。 由于BMP文件格式是Windows環(huán)境中交換與圖形有關數(shù)據(jù)的一種標準, 因此在Windows環(huán)境中運行的圖形圖像軟件都支持BMP格式。3. 讀取并且顯示圖像
利用MATLAB仿真工具,實現(xiàn)圖像文件的讀取、顯示及色彩變換。3.1 imread()
功能: 實現(xiàn)多種類型圖像文件的讀取﹐如BMP、GIF、JPEG、PNG,RAS等。調用格式: % 獲取圖像 Image1=imread('../images/peppers.JPG');A=imread(FILENAME,FMT)。 FILENAME為圖像文件名,若文件不在當前目錄或MATLAB目錄下, 則需要列全文件路徑。FMT為文件的擴展名,指定文件類型。 A為圖像數(shù)據(jù)矩陣。3.2 imshow()
功能:顯示圖像。調用格式: % 顯示Image2圖像 imshow(Image2);imshow(FILENAME):顯示FILENAME指定的圖像, 若文件包括多幀圖像, 則顯示第一幀,且文件必須在MATLAB的當前目錄下。3.3 imwrite函數(shù)
功能:實現(xiàn)圖像文件的保存。調用格式: % 實現(xiàn)Image2圖像文件的保存 imwrite(Image2,'../images/changecolor.jpg');3.4 rgb2hsv()
功能:實現(xiàn)RGB數(shù)據(jù)圖像向HSV數(shù)據(jù)圖像的轉換。調用格式:HSV=rgb2hsv(RGB)。 RGB為RGB彩色圖像,為三維矩陣; HSV為三維HSV圖像矩陣,三維依次為H、S、V,取值均在[o,1]范圍內。3.5 rgb2ycbcr ()
功能:實現(xiàn) RGB數(shù)據(jù)圖像向YCbCr 數(shù)據(jù)圖像的轉換。 調用格式:YCBCR=rgb2ycbcr(RGB)。3.6 rgb2hsv()和rgb2ycbcr ()綜合示例:
代碼:
orgImg = imread('../images/lotus.bmp'); ycbImg = rgb2ycbcr(orgImg);%將圖片進行ycbcr化 hsvImg = rgb2hsv(orgImg);%將圖片將星hsv化%顯示圖片 figure; subplot(131),imshow(orgImg),title('原圖'); subplot(132),imshow(ycbImg),title('ycbcr圖片'); subplot(133),imshow(hsvImg),title('hsvImg圖片'); %顯示數(shù)據(jù) disp(ycbImg); disp(hsvImg);運行結果:
3.7 gb2gray函數(shù)
功能:實現(xiàn)彩色圖像灰度化。 調用格式:I=rgb2gray(RGB)。代碼:
orgImg = imread('../images/peppers.JPG');%通過rgb2gray()方法進行灰度化 grayImage = rgb2gray(orgImg);%通過分離RGB三個通道進行灰度化 imageR = orgImg(:,:,1);%獲取原圖片的R通道 imageG = orgImg(:,:,2);%獲取原圖片的G通道 imageB = orgImg(:,:,3);%獲取原圖片的B通道%通過im2bw()方法直接將圖片黑白化 bwImg = im2bw(orgImg); figure; subplot(231),imshow(orgImg),title('原圖'); subplot(232),imshow(grayImage),title('grayImage'); subplot(233),imshow(imageR),title('R'); subplot(234),imshow(imageG),title('G'); subplot(235),imshow(imageB),title('B'); subplot(236),imshow(bwImg),title('bwImg');運行結果:
本章綜合示例:
示例01: 編寫程序,打開“schoolNight.jpg”圖像,對其取反并顯示。
代碼:
I= imread( 'images/schoolNight.jpg' ); J= 255-I; subplot( 1,2,1) ,imshow(I) ,title('原始圖像'); subplot( 1,2,2),imshow(J) ,title( '反色圖像'); imwrite(J , 'images/schoolNighC.jpg');運行結果:
示例02: 編寫程序,打開彩色圖像,將其轉化為灰度圖像和二值圖像。
代碼:
Image1 = im2double( imread( 'images/lotus.bmp ' ) ); imshow(Image1); %打開圖像并將像素值轉化到[0,1] r = Image1( : , :,1); %提取紅色通道 g = Image1( : , :,2); %提取綠色通道 b = Image1( : , :,3); %提取藍色通道 Y= 0.299 * r+ 0.587* g+0.114 * b; %計算亮度值¥實現(xiàn)灰度化 I = (r+ g+ b)/3; %計算亮度值Ⅰ實現(xiàn)灰度化 figure,imshow( Y) ,title( '亮度圖Y'); figure,imshow( I),title( '亮度圖I'); BW= zeros( size(Y)); BW(Y > 0.3)= 1; %閾值為0.3,實現(xiàn)灰度圖二值化 figure,imshow(BW),title( '二值圖像');運行結果:
總結
以上是生活随笔為你收集整理的MatLab--数字图像处理基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无刷电机foc笔记
- 下一篇: ROS教程之读取激光雷达(sick_ti