谢字笔顺怎么写:17.4 在多分辨率图像中检测植被(2) - 51CTO.COM

来源:百度文库 编辑:中财网 时间:2024/05/03 10:52:27

17.4 在多分辨率图像中检测植被(2)

http://book.51cto.com  2009-06-24 13:35  张强/王正林  电子工业出版社  我要评论()
  • 摘要:《精通MATLAB图像处理》第17章MATLAB图像分割实战,本章主要讲述了图像分割方面的7大实例,读者通过这些实例,能够熟练掌握MATLAB在图像分割方面的应用。本节为大家介绍在多分辨率图像中检测植被。
  • 标签:MATLAB  图像处理  精通MATLAB图像处理

17.4  在多分辨率图像中检测植被(2)

通过分析近红外光谱带和红色光谱带之间的差异,可以定量描述地表绿色植被和其他表面物体,如道路建筑物等光谱内容的对比度。

提取颜色分量并绘制散点图。

代码如下:

  1. NIR = im2single(CIR(:,:,1));%近红外光谱带  
  2. red = im2single(CIR(:,:,2));%可见光红色光谱带  
  3. figure; subplot(121)  
  4. imshow(red)%显示红色光谱带图像信息  
  5. title('Visible Red Band'); subplot(122)  
  6. imshow(NIR)%显示近红外光谱带图像信息  
  7. title('Near Infrared Band'); figure  
  8. plot(red, NIR, '+b')%绘制红色和近红外光谱散点图  
  9. set(gca, 'XLim', [0 1], 'XTick', 0:0.2:1,...  
  10.          'YLim', [0 1], 'YTick', 0:0.2:1);  
  11. axis square;  
  12. xlabel('red level'); ylabel('NIR level');  
  13. title('NIR vs. Red Scatter Plot') 

我们单独取出近红外光谱带和红色光谱带,把图像格式从uint8转化为single,并且将两条光谱带的信息以灰色图像显示,如图17-15所示,左边为可见光中红色光谱带信息,右边为近红外光谱带的信息。

我们以红色光谱带的值作为x轴的坐标,以近红外光谱带的值作为y轴的坐标,绘制散点图,如图17-16所示。

  (点击查看大图)图17-15  可见光和近红外光谱带

  图17-16  近红外和红色光谱带散点图

其中对角线上的值意味着近红外光谱带和红色光谱带的值相等,这些区域一般为道路和屋顶;图中上面区域或者左边的值指近红外光谱带的像素值大于红色光谱带的像素值,这些区域一般为绿色植被。

使用归一化变量进行检测。

代码如下:

  1. ndvi = (NIR - red) ./ (NIR + red);%归一化  
  2. figure; subplot(121)  
  3. imshow(ndvi,'DisplayRange',[-1 1])%显示归一化的差别  
  4. title('Normalized Difference Vegetation Index')  
  5. threshold = 0.4;%阈值  
  6. q = (ndvi > threshold);%生成二值图像  
  7. 100 * numel(NIR(q(:))) / numel(NIR)  
  8. subplot(122); imshow(q)%显示阈值化的二值图像  
  9. title('NDVI with Threshold Applied')  
  10. h = figure; p = get(h,'Position');  
  11. set(h,'Position',[p(1,1:3),p(3)/2])  
  12. subplot(1,2,1); plot(red, NIR, '+b')%显示散点图中蓝色部分  
  13. hold on  
  14. plot(red(q(:)), NIR(q(:)), 'g+')%显示散点图中绿色部分  
  15. set(gca, 'XLim', [0 1], 'YLim', [0 1])  
  16. axis square  
  17. xlabel('red level'); ylabel('NIR level')  
  18. title('NIR vs. Red Scatter Plot')  
  19. subplot(1,2,2); imshow(q)%用彩色显示二值图像  
  20. set(h,'Colormap',[0 0 1; 0 1 0])  
  21. title('NDVI with Threshold Applied') 

虽然从散点图中观察是一种确定绿色植被区域的有效方法,但是这种方法是很粗糙的,其结果很不精确。注意到如果绿色植被密度更高的话,近红外光谱带和红色光谱带之间的差异会更大,因此我们可以定义一个变量归一化植被差异指数(ndvi)作为衡量标准,它首先计算近红外光谱带(NIR)和红色光谱带(red)之间的差异,然后进行归一化,以去除云层、山脉等引起的不均匀照明影响。归一化公式为:

 

使用single数据类型比使用double数据类型节省存储空间,在这个程序中,把像素值归一化到[-1, 1]范围以显示图像,如图17-17左图所示,从图中可以看出深色的区域为河流,而白色的区域是绿色植被。

为了使归一化图像中绿色植被区域显示得更加明显,可以在归一化的图像中使用阈值进行处理,得到二值图像如图17-17右图所示。从图中可以看出,绿色植被和其他一些小区域显示为白色,而其他区域则显示为黑色。

  (点击查看大图)图17-17  归一化后的图像和阈值化的二值图像
为了把光谱带的信息和空间信息连接起来,可以在原来的散点图上进一步绘制加入阈值后的像素之间的信息,来增加对比,其中植被区域显示为蓝色,其他区域显示为绿色,如图17-18所示。

  (点击查看大图)图17-18  散点图和彩色显示的二值图像