资源简介
滴水算法实现,包含按顺序分解数字图片的功能
代码片段和文件信息
function [tile1 tile2] = dropfall(tile dir)
width=size(tile2); %列数
height=size(tile1);%行数
cut=zeros(height1);%n行1列
if strcmp(dir‘bottom-right‘)==1
tile=fliplr(tile);
tile=flipud(tile);
elseif strcmp(dir ‘bottom-left‘)==1
tile=flipud(tile);
elseif strcmp(dir ‘top-right‘)==1
tile=fliplr(tile);
end
%look for starting point to begin cutting at
%Stored under variable start_x
for row=1:height
found_candidate=0;%找到的标志符号
found_start=0; %剪切点的开始
candidate_x=0; %候选剪切点的横坐标
candidate_y=0; %候选剪切点的纵坐标
start_x=0; %剪切点横坐标
start_y=0; %剪切点纵坐标
%Check the 搑ight three fourths minus some?of each
%row for the candidate
for col=round(width/4):width-1
pres_pix = tile(rowcol);
prev_pix = tile(rowcol-1);
next_pix = tile(rowcol+1);
if pres_pix==0 & next_pix>0
found_candidate=1;
candidate_x=col;
candidate_y=row;
end
if found_candidate==1 & pres_pix==0 & prev_pix>0
found_start=1;
start_x=candidate_x+1;
start_y=candidate_y;
end
end
if found_start==1 %找到候选点就跳出循环,候选点像素为0,旁边都是1
break;
end
end
%Start the drop fall!
%Start de?ning the cut
cut(:1)=start_x*ones(height1); %以开始点的横坐标为切割线
row=start_y;
col=start_x;
path_tile=tile;
cut_point_x=0;
cur_point_y=0;
while (row if path_tile(row+1col)==255
row=row+1;
elseif path_tile(row+1col+1)==255
row=row+1;
col=col+1;
elseif path_tile(row+1col-1)==255
row=row+1;
col=col-1;
elseif path_tile(row col+1)==255
col=col+1;
elseif path_tile(row col-1)==255
col=col-1;
else
if tile(rowcol)==255
cut_point_y=row; %point at which the cutting into the black begins
cut_point_x=col;
end
row=row+1;
end
path_tile(rowcol)=500; %This marks where the path has been
cut(row1)=col;
end
width1=max(cut)-1;
min_cut=min(cut);
width2=width-min_cut+1;
tile1=255*ones(height width1);
tile2=255*ones(height width2);
for i=1:height
x_cut=cut(i);
tile1(i 1:x_cut-1)=tile(i 1:x_cut-1);
tile2(i x_cut-min_cut+1: width2)=tile(i x_cut:width);
end
if strcmp(dir‘bottom-right‘)==1
tile1=fliplr(tile1);
tile1=flipud(tile1);
tile2=fliplr(tile2);
tile2=flipud(tile2);
%Switch tiles 1 & 2 they get reversed because of all the ?ipping
dummy=tile1;
tile1=tile2;
tile2=dummy;
elseif strcmp(dir ‘bottom-left‘)==1
tile1=flipud(tile1);
tile2=flipud(tile2);
elseif strcmp(dir ‘top-right‘)==1
tile1=fliplr(tile1);
tile2=fliplr(tile2);
dummy=tile1;
tile1=tile2;
tile2=dummy;
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-03-14 11:52 DropFall\
文件 158774 2013-02-27 02:34 DropFall\c.bmp
文件 80406 2013-02-27 02:40 DropFall\d.bmp
文件 2897 2013-03-05 23:37 DropFall\dropfall.asv
文件 2897 2013-03-05 23:39 DropFall\dropfall.m
文件 241 2013-02-28 17:33 DropFall\main.m
文件 236278 2013-02-28 17:21 DropFall\new.bmp
文件 1501 2013-01-23 13:46 DropFall\tu.jpg
文件 1198 2013-01-23 13:47 DropFall\tu1.jpg
文件 1510 2013-01-23 13:47 DropFall\tu2.jpg
文件 1696 2013-01-23 13:48 DropFall\tu3.jpg
文件 1759 2013-01-23 13:48 DropFall\tu4.jpg
相关资源
- 二次相关时延估计算法
- 矢量编程潮流及最优潮流算法
- PNN,smote,BP-AdaBoost等类别不平衡分类
- FISTA 压缩感知的图像使用快速迭代s
- 可以用的经典密度聚类算法(DBSCAN)
- 流体力学中simple算法的matlab代码
- 最小二乘算法(LMS)处理滤波并预测
- Baum-Welch算法迭代估计隐马尔科夫模型
- matlab编写的蛙跳聚类算法(SFLA)
- 粒子群算法优化极限学习机的参数
- 基于kaiser窗的双谱线插值FFT谐波分析
- 加窗插值FFT算法的matlab 512点仿真
- 高动态 GPS 自适应抗干扰算法研究
- matlab实现遗传算法 (Matlab Genetic Al
- SIFT算法的图像拼接
- 多个目标定位的基本算法仿真
- 激光雷达点云滤波的topscan算法实现
- 高斯过程回归算法工具箱
- 求解电力系统经济调度等优化问题的
- PHD和CPHD两种算法的仿真程序
- 基于OFDM信号的能量频谱感知算法仿真
- k-medoids聚类算法matlab源代码
- Chameleon变色龙层次聚类算法实现
- 基于蚁群算法的机器人路径规划(避
- matlab实现的利用backstepping算法设计的
- matlab实现的三维UWBTDOA AOA联合定位算法
- matlab实现ID3 决策树算法
- fattal算法的梯度域实现色调映射(G
- matlab实现混合蛙跳算法(SFLA)代码
- SOMP算法代码
评论
共有 条评论