资源简介
matlab 实现了四叉树的分割算法 算法中对实例图片进行了分割,matlab7.0编译通过

代码片段和文件信息
clear;
PicC=imread(‘lake256.jpg‘);
Threshold=0.2 %qtdecomp的参数
MinDim=4; %qtdecomp的参数
[mnlayer]=size(PicC);
PicOut=255+zeros(mn);%255是白色的值,生成一个白色的图片
if(layer==3)
Pic=rgb2gray(PicC);%如果是彩色图像,则转换为灰度图像
end
PicDivide=qtdecomp(PicThresholdMinDim);%四叉树分割
List=find(PicDivide);%PicDivide中非零元素的位置,List为列向量
List=List‘; %转置List,使其为行向量
NumMin=0; %边长为MinDim的块的数量
NumNotMin=0;%边长大于MinDim的块的数量
for i=List
if PicDivide(i)==MinDim
NumMin=NumMin+1;
else
NumNotMin=NumNotMin+1;
end
end
RatioEnt=strcat(‘边长为最小值的块数与其他块的总数的比值为:‘num2str(NumRatio));
%BlockNum=size(List); 以下四行计算四叉树分割得到的块与图像面积的比
%BlockNum=BlockNum(2);
%BlockRatio=BlockNum/(m/4)/(m/4);
%BlockEnt=strcat(‘四叉树分割得到的块与图像面积的比是‘num2str(BlockRatio));
for i=List
[xy]=ind2sub(size(PicDivide)i);%将线性序列转变为行列序列
DSize=PicDivide(xy)-1; %需要减1,比如坐标为20,边长为5,则方块的边界为20+5-1=20
PicOut(x:(x+DSize)y)=ones(DSize+11);%左侧边
PicOut(xy:(y+DSize))=ones(1DSize+1);%上侧边
PicOut(x:(x+DSize)y+DSize+1)=ones(DSize+11);%右侧边
PicOut(x+DSize+1y:(y+DSize))=ones(1DSize+1);%下侧边
end
subplot(121);imshow(PicC);
subplot(122);imshow(uint8(PicOut));
xlabel(RatioEnt);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1380 2009-04-15 00:01 PicBlock.m
文件 12607 2009-03-29 09:17 lake256.JPG
----------- --------- ---------- ----- ----
13987 2
相关资源
- Dstar(动态路径规划)算法62845
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 光纤传输中的分布傅立叶算法matlab实
- k近邻算法matlab实现
- 基于区域生长的图像分割MATLAB
- 细胞图像分割matlab代码
- matlab编写的susan算法程序
- matlab-图像处理算法
- matlab链码提取算法
- matlab 数字图像对比度拉伸算法
- 数字图像处理radon matlab变换算法代码
- 主动轮廓模型算法matlab程序
- MATLAB 实现各类常见算法
- 数字信号处理 理论算法与实现 胡广书
- 基于BP神经网络的盲均衡算法 C程序(
- 基于harris算法的角点检测matlab原代码
- 图像匹配matlab源程序sift算法
- matlab编写的量子遗传算法
- 用蚁群算法求解TSP问题的matlab程序
- 粒子群算法matlab工具箱
- Matlab图像分割边缘提取算法
- prony 算法
- 蚁群算法论文+源代码
- 基于粒子群算法的非合作博弈的matl
- 协同进化遗传算法求解函数优化问题
- pri传统分选算法
- 基于RSSI的VIRE定位算法
- 相关向量机的快速算法
- Gardner_for _MPSK(PSK的符号同步算法)
评论
共有 条评论