资源简介
matlab程序,用于显示四叉树分割后的示意图。这是个主程序,不是函数,运行前需要修改程序所读入的图像位置。
代码片段和文件信息
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
- 上一篇:最小二乘拟合matlab程序
- 下一篇:基于MATLAB的排队问题仿真.PDF
相关资源
- 基于MATLAB的排队问题仿真.PDF
- 最小二乘拟合matlab程序
- 数字基带传输系统的MATLAB仿真实现2
- MATLAB YALMIP工具箱调用cplex求解TSPTW
- 变调不变速语言处理程序
- 使用扩展卡尔曼滤波训练的神经网络
- 图像分割matlab程序
- IMM算法卡尔曼滤波matlab仿真
- newmark法计算结构响应
- MATLAB脉冲响应不变法设计IIR巴特沃斯
- Viterbi的matlab程序
- 基于MATLAB的M-PSK数字基带通信系统仿真
- 巴特沃兹滤波器m文件,有实验介绍和
- 区域生长分割matlab实现
- Matlab指纹图像分割实验报告
- 无人驾驶车辆模型预测控制配套matl
- 基于matlab的QPSK仿真
- OFDM基于循环前缀的最大似然同步算法
- 结构动力学编程matlab
- 排队理论 Matlab仿真
- gmm matlab 代码
- 卡尔曼滤波跟踪视频目标matlab程序
- MATLAB 水和水蒸气计算函数
- MATLAB免疫遗传算法,在物流中心选址
- 整数规划思想求解数独游戏
- 形状上下文 代码 MATLAB
- 彩色遥感图像分类算法及 Matlab实现
- GMM Libraries for Matlab
- MATLAB迭代法计算信道容量
- PLA简单matlab实现
评论
共有 条评论