在MATLAB中从NDVI伪彩色图像中提取数据

时间:2014-09-05 01:40:48

标签: matlab image-processing

我的NDVI false color image

NDVI< -1,+ 1>范围被假色LUT重新着色。

我需要从伪彩色像素图中提取NDVI索引数据。

如何制作MATLAB 访问&重建NDVI索引数据,该数据最终应该再次具有范围-1到1?

的值

附注:

我只有MATLAB供我使用。

1 个答案:

答案 0 :(得分:0)

首先导入文件

取决于您的假色file-type

% DEPENDS ON YOUR FILE FORMAT _______________________________________
%
% MAY READ-IN .TIF/.

I = imread('False_coloured_(NDVI2RGB)_converted_SatIMAGE.tif');

% MIGHT NEED A MORE COMPLEX fileInput AS FROM MULTIBAND SOURCE
%
% = multibandread( ... );
%
% DEPENDS ON YOUR FILE FORMAT _______________________________________

I / imread()

mutlibandread()检查实际结构

[cLUT] colourSpace反向转换 - >浮动NDVI-indexSpace

这听起来很简单,但如果没有cLUT 前向转换的正确先验知识,你必须猜测。

8位灰度图像的方式最简单(同时也必须小心)。

理论上,[0..250]的图像范围可以解映射,[0..250]在实践中(有时251表示水,或253表示填充,表示详情请仔细检查您的Image-vendor的文档,而不是让志愿者在这里阅读Wikipedia等)

问题不是RGB转换,而是使用了[cLUT] colourMap

您可以轻松浏览和检查Image RGB colourSpace值

falseColourRED   = I(:,:,1);
falseColourGREEN = I(:,:,2);
falseColourBLUE  = I(:,:,3);

目标是猜测反向翻译。

初步猜测从[RGB]移动 - > NDVI通过反向 - 映射到

linspace( -1.0, 1.0, nUniqueRgbClrTripletsFoundInTheIMAGE )

失败越多" wilder" /更多"异国情调"错误着色过程[cLUT] colourMap在前向转换中,以强调某些特定的农业现象。

所以你需要知道使用的原始前向 - 转化[cLUT]映射。

示例[cLUT] colourMap差异

Sample cLUT colourMAP Sample cLUT colourMAP Sample cLUT colourMAP

所以从上到下看,你希望在视觉上实现反向 - 转换问题

Vendor specific [cLUT]-Forward-conversion mapping NDVI-indexSpace->colorSpace ambiguity:
------------------------------------------------------------------------
[+1.0]->Red
[+1.0]->DarkBrown
[+1.0]->Violet
[+1.0]->DarkBlue
[+1.0]->DarkGreen

------------------------------------------------------------------------
colorSpace -> NDVI-indexSpace [cLUT]-Reverse-conversion ambiguity:
------------------------------------------------------------------------
                        [Red]->+1.0
                        [Red]->+0.8
                        ...
                        ..
                        .