MATLAB 四叉树分割遥感图像

四叉树是遥感图像处理里面常用的一种算法,我这里采用递归的方法来实现

数据处理的思路

对于图像矩阵,我是判断它的方差是否小于某个阈值,大于就继续分,小于就不分。

不分之后的处理就是,计算矩阵的平均值,然后把平均值赋给矩阵所有的元素。

算法流程图如下:

源代码

Nan_mean函数

用来计算矩阵平均值

function [m] = Nan_mean(x)

%Nan_mean 此处显示有关此函数的摘要

% 此处显示详细说明

x = x(:);

k = 1;

x0 = [];

for j = 1:length(x)

if ( ~isnan(x(j)) )

x0(k) = x(j);

k = k+1;

end

end

% && length(x0) > length(x)/2

if (~isempty(x0) && length(x0)/length(x) > 0.15)

m = mean(x0)

else

m = mean(x);

end

myvar函数

用来计算矩阵的方差

function [ re ] = myvar( x )

%MYVAR 此处显示有关此函数的摘要

% 此处显示详细说明

x = x(:);

num = sum(~isnan(x));

m = Nan_mean(x);

if (num == 0)

re = 0;

else

re = 0;

for i = 1:length(x)

if (~isnan(x(i)))

re = re+(x(i)-m)^2;

end

end

re = re / num;

end

end

FTree_tra函数

递归四叉树分割函数

function [p] = FTree_tra(x,min)

%FTree_tra 此处显示有关此函数的摘要

% 此处显示详细说明

p = x;

if (length(p) > 0)

yp = length(p(:,1));

xp = length(p(1,:));

xp0 = xp/2;

yp0 = yp/2;

child1 = p([1:yp0],[1:xp0]);

child2 = p([1:yp0],[xp0+1:xp0*2]);

child3 = p([yp0+1:yp0*2],[1:xp0]);

child4 = p([yp0+1:yp0*2],[xp0+1:xp0*2]);

v = myvar(p);

if ((v > 0.005 ) && yp>min)

child1 = FTree_tra(child1,min);

child2 = FTree_tra(child2,min);

child3 = FTree_tra(child3,min);

child4 = FTree_tra(child4,min);

p = [child1 child2;

child3 child4];

else

if (Nan_mean(p) ~= 1 && length(p) > 0)

p = ones(yp,xp).*Nan_mean(p);

p(1:end,1,:)=nan; %直接修改所有block的左、上边界为白色。

p(1,1:end,:)=nan;

flag2 = Nan_mean(p);

end

end

end

end

参考结果

存在的问题

可以看到在图像边缘部分,会出现一些较大的图块,这是因为计算图像边缘的时候,Nan_mean函数里头的

if (~isempty(x0) && length(x0)/length(x) > 0.15)

0.15这个阈值可能不是很合适,可能要调小一点吧。

欢迎大家留言交流!

matlab四叉树分割代码,【测绘专用】 MATLAB 四叉树分割遥感图像相关推荐

  1. 小菊的语义分割2——数据集的制作(一): ISPRS_Potsdam遥感图像数据集

    小菊的语义分割--对ISPRS数据集中的遥感图像进行切分,制作自己的训练数据集 1. 为什么要对遥感图像进行切分? 2. 切分图像,制作数据集 欢迎大家关注我的个人博客:fuhao7i.com 1. ...

  2. matlab 高斯迭代代码_用Matlab编写你的第一个有限元_《数值计算与程序设计》系列课程...

    本课主要分析了有限元的基本理论, 不同于其他学习资料的是本文从数学的角度重新阐述了有限元分析的基本步骤,如通解与特解的讲解,并以一个偏微分方程实例,从基础插值出发,详细地讲解了有限元数学推导的每一步过 ...

  3. matlab kmeans c 代码,K-means之matlab实现

    引入 作为练手,不妨用matlab实现K-means 要解决的问题:n个D维数据进行聚类(无监督),找到合适的簇心. 这里仅考虑最简单的情况,数据维度D=2,预先知道簇心数目K(K=4) 理论步骤 关 ...

  4. matlab卡农代码微盘,MATLAB演奏国歌,除乐理知识基本抛弃卡农代码,未参照前国歌.......

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 最近很无聊,想起卡农代码,很是佩服,原卡农代码为小提琴三重奏,本人音乐修养不行,做不出来,在此感谢卡农大神代码的启发指点,并无多少相同 本帖第一部分为思路 ...

  5. matlab低通滤波器库函数代码_利用Matlab filterDesigner 工具生成FIR滤波器函数,并调用实现低通滤波...

    本文使用的开发环境为:Win10 Matlab2018a 版本. 在matlab命令窗口输入:filterDesigner命令,即可打开filterDesigner设计工具. 按照下图调整FIR低通滤 ...

  6. matlab表白动画代码,小人表白MATLAB代码

    小人表白MATLAB代码 function gaobai sc = get(0, ScreenSize ); >> figure( toolbar , none ,. position , ...

  7. matlab仿真计算代码代写,matlab/simulink程序代写

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 已有的matlab模型如下:(可以根据客户要求定做模型) 电机控制类 开关磁阻电机控制 电机本体模型 转速闭环 位置闭环(鲁棒和PID两种) 模糊PID速 ...

  8. matlab比例环节代码,典型环节MATLAB仿真.doc

    实验一 典型环节的MATLAB仿真 一.实验目的 1.熟悉MATLAB桌面和命令窗口,初步了解SIMULINK功能模块的使用方法. 2.通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节 ...

  9. matlab高斯消去法程序代码,如何在MATLAB用高斯消去法求解线性方程组程序

    满意答案 个inhjn 2013.04.23 采纳率:49%    等级:12 已帮助:15459人 程序如下function x=gauss(A,b) %高斯求解方程组%x=gauss(A,b)n= ...

  10. 小波相干wtc matlab,WaveletSpectra 小波相干分析代码,图谱专用,用于做 性 matlab 238万源代码下载- www.pudn.com...

    文件名称: WaveletSpectra下载 收藏√  [ 5  4  3  2  1 ] 开发工具: matlab 文件大小: 4165 KB 上传时间: 2014-03-25 下载次数: 5 提 ...

最新文章

  1. 清华 NLP 实验室:AI 诗人「九歌」喊你来对对子
  2. appium+python自动化40-adb offline(5037端口被占)
  3. 64位debian系统下安装inodeClient
  4. Python+Selenium WebDriver API:浏览器及元素的常用函数及变量整理总结
  5. 华为官方强制线刷工具_一加8/8Pro 线刷救砖
  6. 销售行业ERP数据统计分析都有哪些维度?
  7. 微软职位内部推荐-Senior Network Engineer
  8. 用户名、密码都有值激活提交按钮
  9. 在EXCEL中使用SQL语言对工作表进行操作
  10. 【推荐系统】16篇最新推荐系统论文送你
  11. 【项目3-2】多肉植物网站
  12. Python基于迁移学习的手势识别实战【图像多分类任务】【实测准确度超过99.5%】
  13. Go 设计模式(Go patterns)
  14. Activiti6 下载安装
  15. python课程设计实验报告-Python语言课程设计报告格式.doc
  16. 自制hdmi线一头改vga图_杀鸡取卵 | 破拆电脑VGA电缆获取收音机天线零件:双目铁氧体磁芯...
  17. Appium+夜神模拟器模拟人为操作
  18. 字符串的初始化(详解)
  19. win11修改中文用户名为英文(解决重启vivado设置初始化问题)
  20. CCleaner软件自定义清理设置

热门文章

  1. PLC也能制作小游戏----Codesys编写猜数字小游戏
  2. DSA数字签名原理及JAVA实现
  3. 计算机机房搬迁预算,信息中心机房整体搬迁方案.doc
  4. 手把手教你使用QGIS制作地图
  5. Layabox 2 使用其它编辑器开发layabox2d
  6. 【智能优化算法】多目标于分解的多目标进化算法MOEA/D算法(Matlab代码实现)
  7. coverity java_coverityamp;fortify1--Poor Error Handling: Overly Broad Catch
  8. 阿里巴巴大数据计算平台MaxCompute全套攻略
  9. 怎么批量修改pdf文件名
  10. zemax设计35mm镜头_镜头光学设计宝典结合Zemax实例分析(中文版).pdf