四叉树算法原理与实现
一、原理
四叉树编码的基本思想是:首先将把一副图像或栅格地图( ,k>1,不足则补网)等分成四个一级字块,顺序为左上,右上,左下,右下;然后逐块检查其中所有格网属性值(或灰度值),若相同,则该字块不再分;若不同,则将该子块进一步分成四个二级子块;如此递归地分割,直到每个子块的属性或灰度均相等为止。
二、算法实现
1 //实现四叉树编码2 3 #include"stdio.h"4 void Qutree(int arysize,int level,float curary[] )//arysize 表示矩阵长度,level表示等级,curary[]表示当前矩阵5 {6 7 float fi=curary[0];8 int i;9 //遍历当前数组,是否同构
10 for(i=0;i<=arysize*arysize-1;i++)
11 {
12 if(fi!=curary[i])
13 {
14 break;
15 }
16
17 }
18 if(i==arysize*arysize)
19 {
20 printf("%d,%f",level,fi);
21 printf("\n");
22 return;
23 }
24
25 else
26 {
27 arysize/=2;
28 float *ary1=new float[arysize*arysize];
29 float *ary2=new float[arysize*arysize];
30 float *ary3=new float[arysize*arysize];
31 float *ary4=new float[arysize*arysize];
32 for(i=0;i<arysize;i++)
33 {
34 for(int j=0;j<arysize;j++)
35 {
36 //左上
37 ary1[i*arysize+j]=curary[i*(arysize*2)+j];
38 //右上
39 ary2[i*arysize+j]=curary[i*(arysize*2)+(arysize+j)];
40 //左下
41 ary3[i*arysize+j]=curary[(arysize+i)*(arysize*2)+j];
42 //右下
43 ary4[i*arysize+j]=curary[(arysize+i)*(arysize*2)+(arysize+j)];
44 }
45 }
46
47 level++;
48 Qutree(arysize,level,ary1);
49 Qutree(arysize,level,ary2);
50 Qutree(arysize,level,ary3);
51 Qutree(arysize,level,ary4);
52
53 }
54
55 }
56 int main()
57 {
58 //float aa[16]={1,1,2,2,1,1,3,3,4,2,1,2,3,4,3,4};
59 //Qutree(4,0,aa);
60 float aa[64]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
61 Qutree(8,0,aa);
62 return 0;
63
64 }
参考资料:地理信息系统原理与算法(吴立新 、史文中编著)P176
四叉树算法原理与实现相关推荐
- CRF(条件随机场)与Viterbi(维特比)算法原理详解
摘自:https://mp.weixin.qq.com/s/GXbFxlExDtjtQe-OPwfokA https://www.cnblogs.com/zhibei/p/9391014.html C ...
- 三维目标检测算法原理
三维目标检测算法原理 输入输出接口 Input: (1)图像视频分辨率(整型int) (2)图像视频格式(RGB,YUV,MP4等) (3)左右两边的车道线位置信息摄像头标定参数(中心位置(x,y) ...
- 3D-2D:PnP算法原理
3D-2D:PnP算法原理 1.问题背景-- 什么是PnP问题 ? 2.PnP问题的求解方法 2.1 P3P 2.1.1 算法的实际理解 2.1.2 算法的数学推导 2.1.3 算法的缺陷 2.2 直 ...
- MySQL索引背后的数据结构及算法原理【转】
http://blog.codinglabs.org/articles/theory-of-mysql-index.html MySQL索引背后的数据结构及算法原理[转] 摘要 本文以MySQL数据库 ...
- 文本分类的基本思想和朴素贝叶斯算法原理
文本分类的基本思想和朴素贝叶斯算法原理
- Bagging与随机森林算法原理小结
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 在集成学习原理小结中,我们讲到了集成学习有两个流派,一个是boos ...
- 干货 | 非常全面的谱聚类算法原理总结
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 谱聚类算法是目前最流行的聚类算法之一,其性能及适用场景优于传统的聚 ...
- 层次聚类算法原理总结
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 层次聚类(hierarchical clustering)基于簇间 ...
- 从传感器到算法原理,机器人、视觉避障尽在此文
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:计算机视觉life 避障是指移动机器人在行走过程中,通过 ...
- ORB算法原理解读【不错】
ORB算法原理解读 这篇写得很好 ORB特征提取.匹配及位置估计 里面对匹配的讲解比较好 两个不同二进制之间的汉明距离指的是两个二进制串不同位的个数.两个二进制不同位的个数是越少越好 ...
最新文章
- 兼容IE8,滚动加载下一页
- 简单的PHP和MYSQL做投票系统_php mysql简单投票系统
- 制作基于http的yum源2
- 如果和对方的意见或者事件冲突了怎么办?让步
- python 合并重叠数据
- boost::describe模块实现枚举转字符串的测试程序
- N个数中选择M个数的组合(1MN)
- K-periodic Garland CodeForces - 1353E(贪心)
- 简单模拟实现简单的当登录延时的效果
- php返回支付状态,magento paypal返回支付状态
- 大鱼风控笔记 2:量化风控体系的实现要求
- 春节停车难?用 Python 找空车位!
- bzoj 2281: [Sdoi2011]黑白棋 bzoj 4550: 小奇的博弈(Nimk博弈+DP)
- 时间服务器+注册表,注册表缺失导致Windows Server 2008 R2时钟服务W32time不能自启
- opencv计算机视觉学习笔记一
- C#使用fastreport报表打印
- keras图像风格迁移
- inline详细讲解【C语言】
- 云计算革命-IT产业第三次变革,将如何影响人类社会
- 河北省教育厅计算机制度,河北省中小学计算机室规章制度.doc.docx