#include <stdlib.h>
功能: 构造灰度图像对应的四叉树。如果图像只有单个像素、或者所有像素取值相等,则表示为四叉树的叶子几点;否则图像被划分为四个象限,并递归构造四叉树。
输入: image: 灰度图像,每个像素用一个字节表示256级灰度
imageSize:图像大小为imageSize*imageSize,imageSize有效取值为2的指数
输出: tree: 灰度图像对应的四叉树
返回: 如果构造成功则返回0,否则返回-1
{
//0到m/2, n/2到n-1;
int m=imageSize;
int n=imageSize;
int k=0;
for(int i=0;i<=m/2-1;i++)
{
for(int j=n/2;j<=n-1;j++)
{
nimage[k++]=image[n*i+j];
}
}
}
void extractTOP_LEFT(const unsigned char* image,char* nimage,int imageSize)
{
//0到m/2, n/2到n-1;
int m=imageSize;
int n=imageSize;
int k=0;
for(int i=0;i<=m/2-1;i++)
{
for(int j=0;j<=n/2-1;j++)
typedef struct structQTree QTree;
struct structQTree
{
unsigned char pixel;
bool isLeaf;
QTree *children[4];
};
/* 象限 */
enum
{
TOP_RIGHT = 0,
TOP_LEFT,
BOTTOM_LEFT,
BOTTOM_RIGHT
};
功能: 构造灰度图像对应的四叉树。如果图像只有单个像素、或者所有像素取值相等,则表示为四叉树的叶子几点;否则图像被划分为四个象限,并递归构造四叉树。
输入: image: 灰度图像,每个像素用一个字节表示256级灰度
imageSize:图像大小为imageSize*imageSize,imageSize有效取值为2的指数
输出: tree: 灰度图像对应的四叉树
返回: 如果构造成功则返回0,否则返回-1
*/
{
//0到m/2, n/2到n-1;
int m=imageSize;
int n=imageSize;
int k=0;
for(int i=0;i<=m/2-1;i++)
{
for(int j=n/2;j<=n-1;j++)
{
nimage[k++]=image[n*i+j];
}
}
}
void extractTOP_LEFT(const unsigned char* image,char* nimage,int imageSize)
{
//0到m/2, n/2到n-1;
int m=imageSize;
int n=imageSize;
int k=0;
for(int i=0;i<=m/2-1;i++)
{
for(int j=0;j<=n/2-1;j++)