1. 拼图游戏算法分析
BFS算法。
队列初始化
Repeat
h=当前状态
for a=1 to 4 do begin
生成下一个目标
加入队列
康托展开计算hash码,标记访问和步数
如果达到目标则退出过程
end
h退出队列
until 队列空
说明:队列就是从头进从尾出的一种线性数据结构,不懂自己查
康托展开不懂自己查,这个hash是必要的,不然不能在要求时间内解决问题。
bfs算法应该就不错。A*不能得到最优解。
2. photoshop和gigapan用的拼接算法是什么
但是,因为这款云台、软件完全是国外制造与设计,控制台菜单与拼接软件菜单都不支持中文(代理讲,会尽快推出全中文菜单),使用中会有些不大习惯。
拼接后的全景照片
不仅如此,拼接软件对中文操作系统的兼容性有些问题。在实际使用中,软件只能处理英文名的照片文件,双字节文件名的图片文件一律不能处理,而且一经操作,其拼接软件就会进入死机状态。在此种情况下,笔者使用了Photoshop CS5的自动拼图功能进行了拼图处理,其效果也很好,除了PS外,使用者还可以选用自己熟悉的第三方软件进行拼图处理,但就方便性来讲,GiGaPan Stitch中文版接图软件才是这款智能全景云台的首选接图软件,期待其中文版能尽快推出。
3. 拼图游戏的算法(推动的拼图)FLASH版
不一定只让一个方块移动,算法可以是先把一张图片分割好,为每个方块指定一个整形的数字。然后写一个方法,让i行j列的方块随机往一个方向移动。调用这个方法若干次,效果上就像你让人家玩魔方前,自己手工把它打乱。
数据结构方面,由于AS并不支持真正的多维数组,你可以用数组的数组来存放N*N的方块:
var num:Number=10;
var blocks:Array=new Array();
var count:Number=0;
for(var i:Number=0;i<num;i++){
var row:Array=new Array();
for(var j:Number=0;j<num;j++){
row.push(count++);
}
blocks.push(row);
}
function randomMove(rowIndex:Number,colIndex:Number){
..
}
Good Luck
4. 滑块拼图游戏算法实现
这个游戏要想单纯靠程序实现不太容易,20分谁愿意?加点分。
要不你用专门做这方面的软件,靠FLASH实现不会太难。用它的命令实现是比较容易的,也不用写什么代码,系统自动生成(那个命令叫什么名字我也忘了)。
5. ps里面自动图像拼接用的是什么算法
adobe photoshop cc 2015.5拼接图像方法是:
1、打开PS,新建适当大小白色背景文件;
2、文件-打开-选择要拼接的图片,ctrl+t调整图片大小、位置;
3、继续打开图片,拖进来,调整大小位置,直至布满这张画布,合并图层,完成。
6. java 数字拼图 算法
要想得到最优的就需要使用广度优先搜索,九宫的所有排列有9!种,也就是362880种排法,数据量是非常大的,使用广度搜索,需要记住每一个结点的排列形式,要是用数组记录的话会占用很多的内存,可以把数据进行适当的压缩。使用dword形式保存,压缩形式是每个数字用3位表示,这样就是3×9=27个字节,由于8的二进制表示形式1000,不能用3位表示,使用了一个小技巧就是将8表示为000,然后用多出来的5个字表示8所在的位置,就可以用dword表示了。用移位和或操作将数据逐个移入,比乘法速度要快点。定义了几个结果来存储遍历到了结果和搜索完成后保存最优路径。
7. 急求!图像拼接算法代码
算法描述
procere ImageMatching
{
输入FirstImage;
输入SecondImage;
//获得两幅图象的大小
Height1=GetImageHeight(FirstImage);
Height2=GetImageHeight(SecondImage);
Width1=GetImageWidth(FirstImage);
Width2=GetImageWidth(SecondImage);
// 从第二幅图象取网格匹配模板
SecondImageGrid = GetSecondImageGrid(SecondImage);
// 粗略匹配,网格在第一幅图象中先从左向右移动,再从下到上移动,每次移动一个网格间距,Step_Width 或Step_Height,当网格移出重叠区域后结束
y=Heitht1-GridHeight;
MinValue = MaxInteger;
While ( y<Height1-OverlapNumber)//当网格移出重叠部分后结束
{
x=Grid_Width/2; //当网格位于第一幅图象的最左边时,A点的横坐标。
While ( x<(Width1-Grid_Width/2) )
{
FirstImageGrid=GetImgaeGrid(FirstImgaeGrid, x, y);
differ=CaculateDiff(FirstImgaeGrid, SecondImageGrid);//计算象素值差的平
//方和
if (differ<MinValue)
{
BestMatch_x=x;
BestMatch_y=y;
MinValue = differ;
}
x= x+Step_width;
}
y=y-Step_Height;
}
//精确匹配
Step_Width= Step_Width/2;
Step_Height= Step_Height/2;
While ( Step_Height>0 & Step_Width>0)//当水平步长和垂直步长均减为零时结束
{
if(Step_Height==0)//当仅有垂直步长减为零时,将其置为1
Step_Height=1;
If(Step_Width==0) //当仅有水平步长减为零时,将其置为1
Step_Width=1;
temp_x = BestMatch_x;
temp_y = BestMatch_y;
for ( i= -1; i<1; i++)
for( j= -1; j<1; j++)
{
if ((i=0&j!=0)|(i!=0&j=0))
{
FirstImageGrid=GetImgaeGrid(FirstImgaeGrid,
temp_x+i*Step_Width, temp_y +j*Step_Height);
differ=CaculateDiff(FirstImgaeGrid, SecondImageGrid);
if (differ<MinValue)
{
BestMatch_x=x;
BestMatch_y=y;
MinValue = differ;
}
}
}
Step_Height = Step_Height /2;
Step_Width = Step_Width/2;
}
}
不懂的可以问我,相互交流
8. ps怎么自动拼图,图片大小都是一样的,需要无缝拼接成一张长图,不是全景图。
其实有更简单的方法,下载一个手机图像处理APP就可以做到,如:美图秀秀,海报工厂(有张数限制,一般为9张图)
PS拼长图步骤:
1、Ctrl+N新建文件(高度设的高一点)
2、置入所需图片并摆放位置,Ctrl+T自由变化大小
3、保存为PNG或JPG文件即可
9. PS怎样自动拼合图片
很简单,打开PS(*最好CS3以上,效果会更好!*)文件——自动——Photomerge,会弹出对话框,选择需要拼合的图像,选左边的【自动】,其他默认选项,点击确认即可。你可以反复尝试左边的选项,比如【透视】,【圆柱】等效果,以达到你想要的最佳效果,按照经验,如果是广角镜头拍的,用【圆柱】效果会更好。配上截图,希望对你有所帮助!