大規模遙感影像勻光勻色的一些思考


       最近有一項工作需要用到大規模影像,鑲嵌成一版圖,后期需要用到勻光勻色,由於需要集成到代碼庫中,所以只能自己實現了。重點參考了論文-《

崔浩, 張力, 艾海濱,等. 利用基准色調的大范圍衛星影像色彩一致性處理算法[J]. 測繪學報, 2017, v.46(12):62-73.》,感謝作者的建議,在此再次表示感謝。不多說了,

在具體實現的時候,我將所有uint16位影像,全部轉為uint8位,采用線性拉伸的方式:

clear

tic

fprintf(' ... Read Imagery ... ...\n');
[Img, R] = geotiffread('LongQuanYi_2020_FirstSeason.tif');
info = geotiffinfo('LongQuanYi_2020_FirstSeason.tif');
% Img = uint16(Img*10000);

per = 0.01;                                                                % 線性拉伸比例
backValue = 0;                                                             % 背景像素值

% 這里默認輸入圖像為單通道
[ylen, xlen, channel] = size(Img);

for i = 1:channel
    
    img = Img(:,:,i);
    fprintf(' ... Img Xlen: %d pixels\n', xlen);
    fprintf(' ... Img Ylen: %d pixels\n\n\n', ylen);
    
    % 線性拉伸
    max_val = max(img(:));
    min_val = min(img(:));
    
    if min_val == backValue
        min_val = backValue + 1;                                           % 背景值不能當最小值
    end
    
    fprintf(' ... ... ... ... ... ... ... ... ... ...\n');
    fprintf(' ... Min Val is %d \n', min_val);
    fprintf(' ... Max Val is %d \n', max_val);
    fprintf(' ... ... ... ... ... ... ... ... ... ...\n\n');
    
    % 統計直方圖
    % 輸入圖像為16位,取值范圍為 0 到 65535
    bins = 1:65535;                                                        % 背景值不要參與統計
    histcount = histcounts(img(:)', bins);
    
    %清除臨時變量
    clear bins max_val min_val;
    
    % 直方圖裁剪,計算左值和右值
    [l_val, r_val] = calc_lr_val(histcount, xlen*ylen, per);
    
    % 根據左值和右值,將圖像由16位映射至8位
    img_8bit = img_map(img, l_val, r_val);
    
    Img(:,:,i) = img_8bit;
    
    
end

%% 真彩色影像組合
Img = cat(3,Img(:,:,3),Img(:,:,2),Img(:,:,1));

% 保存結果
geotiffwrite('LongQuanYi_2020_FirstSeason_uint8.tif', uint8(Img), R, 'GeoKeyDirectoryTag', ...
    info.GeoTIFFTags.GeoKeyDirectoryTag);

toc

      完了后,采用原論文中的方法,進行勻光勻色,這個方法主要是依據參考影像底圖進行處理,我用的100米分辨率google底圖,與目前很多勻光勻色軟件一致,比如colormap等等,但是

,個人看法是,這些商業軟件吹噓成分過多,看結果吧:

 

 

再看一下細節部分:

 

整個算法的計算效率還是非常高的,但是有一點需要改進的就是,細節部分還需要優化,行吧,就寫到這里,隨意了。如需代碼,QQ:1044625113,備注:勻光勻色!

接着上一部分沒有寫完的,后續我對勻色算法進行了改進,這一次細節部分更加合理,效果將更加美觀均勻,不多說了,我們看一下結果:

 

上面是北京二號,右邊是勻色后的北京二號,模板用的是全球30米一版圖,從這里可以看出來,比上一個版本好多了,細節更加完善,效果還算可以,聯系方式上面有了。。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM