资源简介

大型飞机航拍图处理matlab代码

资源截图

代码片段和文件信息

% 生成rio.lan的LanAdapter对象
input_adapter = LanAdapter(‘rio.lan‘);

% 选择、绿和蓝光谱
input_adapter.SelectedBands = [3 2 1];

%生成一个分块函数来返回未改动的分块数据
identityFcn = @(block_struct) block_struct.data;

% 生成刚开始的真彩图像
truecolor = blockproc(input_adapter[100 100]identityFcn);

% 显示未改动的图像
figure;
imshow(truecolor);
title(‘Truecolor Composite (Un-enhanced)‘);


adjustFcn = @(block_struct) imadjust(block_struct.data...
    stretchlim(block_struct.data));
truecolor_enhanced = blockproc(input_adapter[100 100]adjustFcn);
figure
imshow(truecolor_enhanced)
title(‘Truecolor Composite with Blockwise Contrast Stretch‘)

% HistogramAccumulator Accumulate incremental histogram.
%   HistogramAccumulator is a class that incrementally builds up a
%   histogram for an image.  This class is appropriate for use with 8-bit
%   or 16-bit integer images and is for educational purposes ONLY.

%   Copyright 2009 The MathWorks Inc.
%   $Revision: 1.1.6.1 $  $Date: 2009/11/09 16:24:41 $

classdef HistogramAccumulator < handle
   
    properties
        Histogram
        Range
    end
    
    methods
        
        function obj = HistogramAccumulator()
            obj.Range = [];
            obj.Histogram = [];
        end
        
        function addToHistogram(objnew_data)
            if isempty(obj.Histogram)
                obj.Range = double(0:intmax(class(new_data)));
                obj.Histogram = hist(double(new_data(:))obj.Range);
            else
                new_hist = hist(double(new_data(:))obj.Range);
                obj.Histogram = obj.Histogram + new_hist;
            end
        end
    end
end

% 生成HistogramAccumulator类
hist_obj = HistogramAccumulator();

% 将样本图像分割为两半
full_image = imread(‘liftingbody.png‘);
top_half = full_image(1:256:);
bottom_half = full_image(257:end:);

% 计算直方图增量
hist_obj.addToHistogram(top_half);
hist_obj.addToHistogram(bottom_half);
computed_histogram = hist_obj.Histogram;

% 与函数IMHIST计算的结果进行对比
normal_histogram = imhist(full_image);

% 检查结果
figure
subplot(121);
stem(computed_histogram‘Marker‘‘none‘);
title(‘Incrementally Computed Histogram‘);
subplot(122);
stem(normal_histogram‘‘Marker‘‘none‘);
title(‘IMHIST Histogram‘);


% 生成HistogramAccumulator类
hist_obj = HistogramAccumulator();

% 设置blockproc函数句柄
addToHistFcn = @(block_struct) hist_obj.addToHistogram(block_struct.data);

% 计算histogram的红色谱  
% 注意到addToHistFcn函数句柄没有生成输出, 
% 这是因为传递给blockproc的句柄没有返回
input_adapter.SelectedBands = 3;
blockproc(input_adapter[100 100]addToHistFcn);
red_hist = hist_obj.Histogram;

% 显示结果
figure
stem(red_hist‘Marker‘‘none‘);
title(‘Histogram of Red Band (Band 3)‘);

%计算绿色光谱直方图
hist_obj = HistogramAccumulator();
addToHistFcn = @(block_struct) hist_obj.addToHistogram(block_struct.data);
input_adapter.SelectedBands = 2;
blockproc(input_adapter[100 100]addToHistFcn);
green_hist = hist_obj.Histogram;

% 计算蓝色光谱直方图
hist_obj = HistogramAcc

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        4420  2013-06-02 23:52  大型飞机航拍图处理matlab代码\feijihangpai.m
     目录           0  2017-03-26 21:55  大型飞机航拍图处理matlab代码\

评论

共有 条评论