Matlab圖像處理-灰度拉伸原理方法

本教程適合Matlab數字圖像處理的初學者。灰度線性拉伸是數字圖像處理中最為簡單直接的圖像增強方法,本文中所支持的灰度拉伸圖像,不僅僅限於灰度圖,更將RGB真彩色圖、多波段遙感影像納入灰度拉伸範疇。較為全面直觀地給出在Matlab中對圖像進行灰度拉伸的方法原理和Matlab原始碼,並配合必要的代碼注釋,希望能幫助Matlab和數字圖像處理的初學者入門。

工具/原料

推薦:Matlab 2013a及以上

支持:灰度圖、RGB真彩色圖、多波段遙感影像

方法/步驟

打開圖像

[FileName, FilePath]=uigetfile('*.tif;*.jpg;*.png;*.img;*.gif;','請選擇圖像數據');

str=[FilePath FileName];

Image=imread(str);

% 以對話框的形式選擇打開一幅圖像

[M,N,nDims]=size(Image);

Image=im2double(Image);

% 獲取圖像的尺寸和波段數

灰度拉伸

ImageStretch=Image;

for i=1:nDims  % 對每個波段依次進行灰度拉伸

Sp=Image(:,:,i);

MaxDN=max(max(Sp));

MinDN=min(min(Sp));

Sp=(Sp-MinDN)/(MaxDN-MinDN);  % 灰度拉伸公式

ImageStretch(:,:,i)=Sp;

end

% 將灰度拉伸結果保存在ImageStretch中

保存輸出

figure,  % 在同一窗口顯示原圖與灰度拉伸結果圖

if nDims==3||nDims==1  % 若為灰度圖和RGB真彩色圖則以常規方式保存並輸出

subplot(1,2,1),imshow(Image);title('原圖');

subplot(1,2,2),imshow(ImageStretch);title('灰度拉伸');

imwrite(ImageStretch,'Result_Stretch.jpg','jpeg');

else  % 若為多波段遙感影像則按照TM 3,2,1組合形式保存並輸出

subplot(1,2,1),imshow(Image(:,:,[3,2,1]));title('原圖');

subplot(1,2,2),imshow(ImageStretch(:,:,[3,2,1]));title('灰度拉伸');

imwrite(ImageStretch(:,:,[3,2,1]),'Result_Stretch.tif','tiff');

end

% 將拉伸結果保存至當前目錄並以Result_Stretch命名

結果對比

灰度圖拉伸結果對比

上圖:原灰度圖

下圖:灰度拉伸結果

RGB真彩色圖拉伸結果對比

上圖:原RGB真彩色圖

下圖:灰度拉伸結果

多波段遙感影像拉伸結果對比

上圖:原多波段遙感影像(TM321組合)

下圖:灰度拉伸結果(TM321組合)

注意事項

Matlab中若需寫入4波段以上信息到tif格式文件中,需要通過Tiff函數實現。

相關文章

  1. Matlab圖像處理-直方圖均衡化原理方法

    本教程適合Matlab數字圖像處理的初學者.直方圖均衡化是數字圖像處理中較為基礎的圖像增強方法,通過直方圖均衡化能夠自適應地有效改善圖像對比度不足問題.本文中所支持的直方圖均衡化圖像,不僅僅限於灰度圖 ...
  2. Matlab圖像處理-RGB色彩提取原理方法

    本教程適合Matlab數字圖像處理的初學者.目前有一些手機相機軟體有"魔法色彩"功能,可以將彩色照片變為只顯示某一種具體顏色的灰色照片.本文中所提到的RGB色彩提取純粹為實現個人興 ...
  3. matlab如何實現圖像灰度拉伸?

    灰度拉伸是灰度分段線性變換的一種,能夠增強圖像對比度,實際上增強原圖各部分的反差,增強輸入中感興趣的灰度區域,抑制不感興趣的灰度區域. 介紹 函數表達式如圖,重要的參數是[x1,x2],[y1,y2] ...
  4. matlab三種創建傳遞函數方法之比較

    s + 5 傳遞函數      G=     ------------------------ s^3 + 16 s^2 + 51 s + 36 1. TF對象構造法 num =[1  5]; den ...
  5. Matlab常用:[1]簡要畫圖方法

    Matalb作為理工科學生和科研人員的常用軟體確實給我們帶來了極大的方便,下面將簡要介紹Matlab畫圖函數的使用方法. 工具/原料 PC Matlab軟體 方法/步驟 首先打開Matlab軟體,窗口 ...
  6. Matlab 語句 快速 分步運行 方法

    在用Matlab進行程序編寫時,經常要分步調試,並不斷修改語句,這裡介紹下簡單分步運行,並方便修改的方法. 工具/原料 Matlab 方法/步驟 首先,使用Matlab的編輯器Editor,在編輯器中 ...
  7. 雙目標定:matlab自動標定相機參數方法

    雙目標定是立體視覺系統中的一個關鍵步驟, 雙目標定的目的是獲取相機的內參和外參,外參包括旋轉矩陣和平移向量: 在進行雙目標定時,有兩種常見的資料庫:matlab視覺處理庫和opencv開源視覺庫: 通 ...
  8. MATLAB計算階乘的集中方法

    利用MATLAB計算計算階乘的五種方法. 工具/原料 電腦.MATLAB.計算器 方法/步驟 方法一: 用函數factorial(n)可計算階乘,例如5! >> factorial(5) ...
  9. MATLAB圖像處理—類&&算子&&符號

    一幅圖形可以被定義為二維函數f(x,y),其中x和y為空間坐標: 對一幅圖像f(x,y)進行採樣,可得到一幅M行N列的圖像: 在matlab圖像處理工具箱中, 坐標系統的原點為(1,1,),r=1~M ...
  10. excel保護部分區域之原理方法,以保護公式為例

    關於excel技巧的文章多如牛毛,本文要講述的保護限定excel部分區域的方法在網絡上也很多,但大多數是講步驟不講原因,讓人費解,就像遊戲裡的作弊快捷鍵一樣那麼沒有理由,那麼神奇,對於嚴謹整齊的exc ...
  11. LED顯示屏亮度和灰度的區別方法介紹

    我們經常聽說,led顯示屏的灰度是多少,亮度是多少,那麼你對於led顯示屏的灰度和亮度到底知道多少呢?下面就讓我們來看看專業人士給出的解釋.   led顯示屏灰度也就是所謂的色階或灰階,是指亮度的明暗 ...
  12. 使用matlab建立矩陣的常見方法

    matlab為矩陣實驗室,是一種科研計算工具,掌握matlab可以幫助我們減少運算量,節約時間. 工具/原料 matlab 方法/步驟 打開matlab,第一種方法是直接建立矩陣.例如在命令窗口中輸入 ...
  13. 安卓手機刷機原理方法介紹刷機失敗解決方案 上

    手機刷機 手機刷機就是一種改變你手機作業系統的一種行為相當於給電腦裝上不同版本的windows或者電腦重裝系統也就是刷手機的作業系統,目前刷機大師將此刷機過程完全自動化讓用戶可以一鍵完成刷機操作. 1 ...
  14. 用matlab分析圖像亮度/光照強度的方法

    在日常生活中或者做光學研究時常常要分析光照強度的分布.一般的做法是先用ccd,攝像頭等器件採集圖像,然後用matlab進行分析.具體做法如下: 工具/原料 matlab軟體 方法/步驟 採集信息: 如 ...
  15. 電錶控制器的原理方法

    電錶節能控制器本質上是一個電容器.在感性負載多的電路中是有作用的!感性負載在家庭中現在存在很多了,智能商用電錶倒轉器適用於新老的電錶不管你是單相電錶,三相電錶,導軌式電錶,載波電錶,等等. 像企業中基 ...
  16. 如何利用MATLAB對圖片進行灰度化

    這一篇主要是利用Matlab中的自帶函數庫中的函數,對圖片進行灰度化處理. 工具/原料 Matlab 電腦 方法/步驟 在電腦上安裝上Matlab,根據你的需要和電腦的配置安裝上相應版本的Matlab ...
  17. 安卓手機刷機原理方法介紹刷機失敗解決方案 中

    5風險 說到風險但凡刷機都帶有一定的風險關鍵看你能不能把風險最小化甚至去掉了.首先肯定的是正常的刷機操作是不會損壞手機硬體的.其次刷機可以解決手機有些莫名其妙的毛病.升級手機硬體驅動就象升級電腦的BI ...
  18. 安卓手機刷機原理方法介紹刷機失敗解決方案 下

    7 刷機名詞 刷機時候免不了會遇到一些刷機上專有的名詞對於剛入門學習刷機的小白用戶來說頭疼不已下面就分享這些專有的刷機名稱[1]並提供解釋幫助用戶很好的了解這些詞彙輕鬆刷機. 7.1 RAM 等同一般 ...
  19. 分析二極體的工作原理方法

    光電二極體及其相關的前置放大器是基本物理量和電子量之間的橋樑.許多精密應用領域需要檢測光亮度並將之轉換為有用的數位訊號.光檢測電路可用於CT掃描儀.血液分析儀.煙霧檢測器.位置傳感器.紅外高溫計和色譜 ...
  20. 三相四線電錶控制器的原理方法

    三相四線液晶電錶控制器也叫做變頻微波控制器,輸入電壓為220v電源,把三相四線液晶電錶控制器輸出的一根天線(一般是8米到10米,要的話另外加錢)放在電錶的液晶顯示面上,先要調節頻率和功率,你先把開關打 ...