注
本文原理解释和很多图片结构来自和参考了知乎大佬大灰熊
的这篇:
https://zhuanlan.zhihu.com/p/542605872
算法解释该算法叫做二维波函数坍缩算法,虽然名听着很玄乎但其实和数独区别也不大,都是一些图决定周围图能取哪些:
在网站 (http://cr31.co.uk/stagecast/wang/tiles_e.html)可以获取一系列的素材图:
这张图每32个像素就是一个图块,整张图能划分为4x4个图块
图像分割且编号% 图片切分
imgList{N*N}=[];
pixNum=size(img,1)/N;
for i=1:N
for j=1:N
imgList{sub2ind([N,N],i,j)}=...
img(((i-1)*pixNum+1):(i*pixNum),...
((j-1)*pixNum+1):(j*pixNum),:);
end
end
比如编号为10的图像右侧只有几张图可以与之相邻:
可以通过计算边界的均方根误差,若是误差小于一定值就认为可以相连(就有点像某年数学建模国赛碎纸片拼接第一问):
% 构建联通表
imgAdjList(N*N).r=[];
imgAdjList(N*N).l=[];
imgAdjList(N*N).u=[];
imgAdjList(N*N).d=[];
for i=1:N*N
imgC=imgList{i};
imgAdjList(i).r=[];
imgAdjList(i).l=[];
imgAdjList(i).u=[];
imgAdjList(i).d=[];
for j=1:N*N
imgS=imgList{j};
% 以下是均方根误差检测部分
% 检测是否右联通 -----------------------------------------------------------
rImgC=imgC(:,end,:);rImgC=rImgC(:);
rImgS=imgS(:,1,:);rImgS=rImgS(:);
rErr=sqrt(mean((rImgC-rImgS).^2));
if rErr
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?