matlab實現 線性拉伸某灰度影像的對比度 程式碼 對比度拉伸
題目:定義一個影像的對比度拉伸函式,函式名為myGrayScaleTransform,將輸入影像的對比度線性平滑地拉伸到指定的灰度級區間,要求該函式的輸入引數包括處理前的灰度影像img1 (如EXP1A.tif)、期望灰度級的引數區間para,輸出引數為處理後的灰度影像img2。
定義函式為img2 = myGrayScaleTransform (img1, para),其中,引數para是一個長度為2的一維陣列,用於表示期望灰度級區間的最小值和最大值,要求最小和最大值的取值範圍限定在區間[0 255]之間,且最小值不能超過最大值,如指定區間為para = [50 120];線性平滑拉伸可以參考資料歸一化的計算原理。
實現思路:
1.定義函式:
我們定義的函式有兩個引數:影像img1和灰度級區間最小值、最大值的二維陣列para。首先對para引數進行判斷,若灰度級的最大值和最小值不符合要求則報錯。
若輸入的引數沒有問題,就開始對影像進行處理:先使用im2double函式將uint8型別的影像資料轉換為double型別的,分別取影像矩陣的最大值和最小值,使用公式利用公式f=(img – min_i)/(max_i – min_i)把資料範圍壓縮到0~1之間的數值,即資料的歸一化,以便計算。再使用公式img2 = (b - a) .* img2 + a還原圖片畫素的大小為para區間內的數值,最後使用函式uint8將圖片資料轉換為uint8的格式,以便輸出。
2.測試函式:
使用imread函式讀取影像'EXP1A.tif';
分別定義灰度級para = [0,50]、 para = [50,120]、para = [150,250],並分別呼叫myGrayScaleTransform函式得到對比度拉伸後的影像;
3.按題目要求顯示影像。
實現效果:
實現原始碼:
clc;
%讀取影像
img_a = imread('EXP1A.tif');
para = [0,50];
img_a2 = myGrayScaleTransform (img_a, para);
para = [50,120];
img_a3 = myGrayScaleTransform (img_a, para);
para = [150,250];
img_a4 = myGrayScaleTransform (img_a, para);
%顯示影像
figure('NumberTitle', 'off', 'Name', '實驗一第三題 EXP1A.tif 對比度拉伸');
subplot(2,2,1);
imshow(img_a);
title('原圖');
subplot(2,2,2);
imshow(img_a2);
title('0~50');
subplot(2,2,3);
imshow(img_a3);
title('50~120');
subplot(2,2,4);
imshow(img_a4);
title('150~250');
function img2 = myGrayScaleTransform (img1, para)
a = para(1);
b = para(2);
if(a > b)
error('para中引數,最小灰度值a不能超過最大灰度值b!');
elseif(a < 0 || b > 250)
error('para中引數,最小灰度值a和最大灰度值b的範圍在區間[0,250]之間!');
end
img = im2double(img1);%將uint8型別的資料轉換為double型別的同時,把資料範圍由原來的0~255對映到0~1,可以看作資料的一種歸一化,以便計算
min_i = min(img(:));
max_i = max(img(:));
img2 = (img - min_i)./(max_i - min_i);%將圖片壓縮到0~1之間的數值
img2 = (b - a) .* img2 + a;%還原圖片畫素的大小為para區間內的數值
img2 = uint8(img2);%將圖片資料轉換為uint8的格式,以便輸出
end
相關文章
- Matlab——對比度拉伸Matlab
- matlab影像點運算 對比度增強 對比度拉伸 灰度變換Matlab
- matlab影像對比度增強,拉伸和灰度變換Matlab
- 【影像處理知識複習】03對比度線性拉伸matlab,C++實現MatlabC++
- 影像增強之對比度拉伸
- 數字影像處理實驗之對比度拉伸
- intrans函式(對比度拉伸)函式
- 灰度變換函式:對數及對比度拉伸變換函式
- matlab練習程式(灰度拉伸)Matlab
- matlab實現調整圖片的對比度Matlab
- 影像對比度和亮度
- MATLAB影像處理imadjust()函式調節影像的對比度示例Matlab函式
- 用 matlab 對圖片進行對比度和均衡度調整Matlab
- 新的顏色對比度演算法-感知對比度演算法APCA演算法PCA
- 04-OpenCvSharp4調整影像亮度和對比度OpenCV
- win10怎麼調對比度_windows10如何調整對比度Win10Windows
- win10對比度在哪調 win10調節螢幕對比度Win10
- Matlab與自己實現的平滑演算法對比Matlab演算法
- PyTorch - transforms.ColorJitter 改變影像的屬性:亮度(brightness)、對比度(contrast)、飽和度(saturation)和色調(hue)PyTorchORMAST
- 百度人臉對比
- 圖片相似度對比SSIM和PHash
- AUTOCAD——拉伸
- win10怎麼調電腦對比度_win10電腦對比度怎麼設定Win10
- 【影像增強】CLAHE 限制對比度自適應直方圖均衡化直方圖
- 影像增強 | CLAHE 限制對比度自適應直方圖均衡化直方圖
- Mac 上超好用的程式碼對比工具 beyond compare,對比json差異MacJSON
- iOS 圖片拉伸、拉伸兩端保留中間iOS
- cad拉伸命令如何使用 cad拉伸怎麼操作
- Python影像讀寫方法對比Python
- HC(Histogram-based Contrast) 基於直方圖對比度的顯著性HistogramAST直方圖
- 單例模式實現對比單例模式
- 15款主流專案進度軟體對比
- 對比學習 ——simsiam 程式碼解析。
- etl 增量對比解決方案 etl-engine 如何實現增量對比
- 報表工具對比選型系列—多樣性資料來源支援度
- 影像相似度比較和檢測影像中的特定物
- Matlab、Julia與Python之間的對比 | Toby DriscollMatlabPython
- [譯] CSS 變數 + calc + rgb = 自動高對比度CSS變數