MATLAB数字图像处理(一)图像的基本操作
寫在前頭:說到數(shù)字圖像處理,不得不提起MATLAB。這是一款非常方便的仿真軟件,絕大多數(shù)的圖像處理可以用MATLAB完成。
有人問,處理圖片,用PS豈不是更好。兩者各有優(yōu)點,如果需要將10000幅圖片轉(zhuǎn)換成灰度圖像并保存呢?MATLAB只需要一段很短的程序運(yùn)行幾秒就可以完成這個工作。
本文基于MatlabR2012a,將由淺入深寫下去。
MATLAB中圖像的基本操作
1、讀取、顯示圖片
MATLAB中提供了immread()與imshow()函數(shù)讀取和顯示圖片。其中讀取函數(shù)imread()原型:
imread: A = imread(filename, fmt)A是結(jié)構(gòu)體名,用來存儲讀入的圖像數(shù)據(jù)。filename是讀取的文件名,文件名要用”括起來。fmt是讀取文件的類型如:jpg、png等等,這個參數(shù)可以不輸入,由MATLAB自動判斷。
顯示函數(shù)imshow()原型:
imshow:imshow(I)I為讀取后保存在MATLAB中的結(jié)構(gòu)體名。
程序?qū)嵗?#xff1a;
A=imread('1.jpg');%讀取名為1.jpg的圖片imshow(A)%顯示圖片2、將灰度圖片變成負(fù)片
對圖像進(jìn)行操作,實際上是將圖像看成許多個像素點,對每個像素點進(jìn)行操作。在計算機(jī)系統(tǒng)中,灰度圖片被看成是許多個由值在[0~255]之間的像素點組成的圖像,255表示白色,0表示黑色,黑白之間存在256個灰度級。
負(fù)片是指將原灰度圖白色的地方變成黑色,黑色的地方變成白色。也就是將0變成255,255變成0。MALTAB的imadjust()函數(shù)提供了該功能。其函數(shù)原型:
imadjust:J = imadjust(I,[low_in; high_in],[low_out; high_out])其中,I為原灰度圖像,low_in,high_in為輸入圖像的低和高灰度級,設(shè)置為[0,1]表示從0~255的歸一化,low_out,high_out為輸出圖像的低高灰度級。
若是想將圖片轉(zhuǎn)換為負(fù)片,那么將[low_in; high_in]設(shè)置為[0,1],將[low_out; high_out]設(shè)置為[1,0]。即原來輸入為0的地方變成1輸出,輸入為1的地方變成0輸出。
實例:
A=imread('1.jpg'); imshow(A)%顯示原圖 A1=imadjust(A,[0,1],[1,0]);%將灰度級對調(diào) figure,imshow(A1)%顯示負(fù)片3、彩色圖片轉(zhuǎn)換成灰度圖片
我們在計算機(jī)中看到的大多數(shù)彩色圖片是基于RBG三通道的圖片,紅綠藍(lán)三種顏色,每一種取值均為[0~255]。通過255*255*255,可以構(gòu)成龐大的顏色群。而灰度圖像只有256個灰度級。通過以下公式可以將RGB轉(zhuǎn)換成灰度
GRAY=0.2989 R + 0.5870 * G + 0.1140 * B*
MATLAB中提供的函數(shù)rgb2gray為我們提供了將彩色圖片轉(zhuǎn)換成灰度圖片的功能。函數(shù)原型:
實例:
A=imread('001.png');%原彩色圖片 imshow(A) A_gray=rgb2gray(A);%轉(zhuǎn)換成灰度圖片 figure,imshow(A_gray)總結(jié)
以上是生活随笔為你收集整理的MATLAB数字图像处理(一)图像的基本操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小米max刷鸿蒙,小米Max刷recov
- 下一篇: java 正则表达式 compile_J