單尺度Retinex(matlab)
說明:此程式碼是針對灰度影像的
clc;clear;
I=imread('DR_ck_0001.tiff');
% Ir=I(:,:,1);%提取紅色分量
% Ig=I(:,:,2);%提取綠色分量
% Ib=I(:,:,3);%提取藍色分量
% I1=SSR(Ir); %自定義單尺度Retinex處理函式
% I2=SSR(Ig);
% I3=SSR(Ib);
% In=cat(3,I1,I2,I3); %cat用於構造多維陣列
In = SSR(I);
t = exp(-10);
enhanced = log(double(I)+t)-log(In+t);
enhanced = normal(enhanced);
subplot(1,3,1);imshow(I);
title('A). 原始影像');
subplot(1,3,2);imshow(In,[]);
title('B). 單尺度Retinex');
subplot(1,3,3);imshow(enhanced,[]);
title('C). 單尺度Retinex');
%——————————————劃重點!!!!!!!!!!!!!!!!!!!!————————————————
function G = SSR(I)
%G=I;
[m,n]=size(I);
I=double(I);
x0=floor((m+1)/2);y0=floor((n+1)/2);
c = 70;
K=1/(sqrt(2*pi)*c);
for x=1:m
for y=1:n
G(x,y)=K*(exp(-((x)^2+(y)^2)/(2*c^2))); %高斯函式
end
end
Gfft=fft2(G);
Ifft=fft2(I);
Lfft=Gfft.*Ifft;
L=ifft2(Lfft);
r=log(I+1)-log(L+1); %加1是為了防止對數為0時,log0沒有定義
%線性拉伸,將灰度範圍轉換到0-255,(直接求反對數的效果不好)
MIN=min(min(r));
MAX=max(max(r));
new=((r-MIN)*255/(MAX-MIN));
A=new;
end
function out =normal(img)
maxx = max(max(img));
minn = min(min(img));
out=(img-minn)./(maxx-minn);
end
相關文章
- MATLAB簡單繪圖Matlab繪圖
- 非度量多維尺度分析
- ubuntu下matlab 簡單使用UbuntuMatlab
- Retinex影像增強演算法的優勢分析演算法
- 近似熵-樣本熵-多尺度熵熵
- (1) 地圖尺度和位姿修改地圖
- [MATLAB] plot畫圖簡單細節隨記Matlab
- 運籌學——matlab實現單純形法Matlab
- YOLOv3 中的多尺度融合與訓練YOLO
- matlab練習程式(構造簡單多邊形)Matlab
- 關於Retinex影象增強演算法的一些新學習。演算法
- 尺度不變人臉檢測:Group Sampling
- 劃分軟體開發人員的兩種尺度
- 目標檢測精讀 | SNIP:解決“尺度不變性”
- MATLAB神經網路工具箱(簡單操作介紹)Matlab神經網路
- RBF神經網路簡單介紹與MATLAB實現神經網路Matlab
- matlab練習程式(矩形變換為單連通形狀)Matlab
- matlab技巧Matlab
- matlab classdefMatlab
- geoshow in matlabMatlab
- matlab-emacs執行matlab程式出錯.不能呼叫matlab命令列模式MatlabMac命令列模式
- MATLAB神經網路工具箱(程式碼簡單實現)Matlab神經網路
- d3.js 入門學習記錄(四) 尺度scale的使用JS
- 谷歌人工智慧獲取醫療資料尺度太大引風波谷歌人工智慧
- 【matlab程式設計】matlab隨機數函式Matlab程式設計隨機函式
- matlab快捷鍵Matlab
- 模板匹配(matlab)Matlab
- matlab 基礎Matlab
- Matlab筆記Matlab筆記
- Matlab繪圖Matlab繪圖
- [MATLAB]排列大小Matlab
- MATLAB插值Matlab
- matlab fscanf用法Matlab
- 支付寶大尺度寫真:發寫真者大多是首次釋出資訊
- [MatLab]學習筆記2:MatLab數值資料Matlab筆記
- 2020-12-18 Matlab LQR 推導及簡單應用Matlab
- 【MATLAB生信分析】MATLAB生物資訊分析工具箱(二)Matlab
- matlab如何生成exeMatlab