11图像变换问题.ppt

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

1.1图像变换问题郑登峰软件工程N0903210992010-5-31问题描述给定两个4×?4方格矩阵组成的图形A和B,每个方格的颜色为黑色或白色。方格矩阵中有公共边的方格称为相邻方格。图形A和图形B的黑白方块总数相等。图形变换问题的每一步变换,可以交换相邻方格的颜色。试设计一个算法,计算最少需要多少步变换,才能将图形A变换为图形B对问题的理解和分析(1)根据题目的描述,我们可以理解为它是一个4×4的矩阵,每个方块都有自己的x,y坐标。而且可以发现两个方块之间的变换步数就是两个方块的对应坐标减值的绝对值的和。例如A(1,1)和方块b(2,4)的移动步数是|1-2|+|1-4|=4歩(2)因为是计算最少变换且图A和图B的黑方块数一定相同,所以相同位置的黑方块是不需要移动的,且在4×4的方块阵内,需要移动黑方块最大值为8,最小值为0以pdf中的例子,图A图B对比,有需要移动的黑方块有2个,A(1,1)B(2,2)要移动到a(1,2)b(2,4)2个黑方块,移动的方式有2种1)A到aB到b2)A到bB到a分别求出步数,第1种和第2种移动步数对比,小的那个就是最小变换步数。随着需要移动的黑方块的增加,移动的方式越来越大3个黑方块3!=3×2=6种4个黑方块4!=4×3×2=24种………8个黑方块8!=40320种以4个黑方块为例看排列的方式假设图A图B比较有4个黑方块需要移动.A图内有A(x1,y1),B(x2,y2),C(x3,y3),D(x4,y4).B图内a(i1,j1),b,(i2,j2),c(i3,j3),d(i4,j4)利用全排列的方式求出所有的移动步数,取最小的。【next_permutation函数】intmain(){ intm=4; intblaOriCnt=0;//记录黑方格数 intblaTarCnt=0;//记录黑方格数 intminStep=0; inttempStep=0; //读取输入的数据 stringoriArray[4]; stringtarArray[4]; for(inti=0;im;i++){ cinoriArray[i]; } for(i=0;im;i++){ cintarArray[i]; } intoriX[8];//存放原始矩阵的X坐标 intoriY[8];//存放原始矩阵的Y坐标 inttarX[8]; inttarY[8]; //处理输入的数据,取出黑方格的xy坐标,并存储在int数组 for(i=0;im;i++){ for(intj=0;jm;j++){ if(oriArray[i].substr(j,1)==1tarArray[i].substr(j,1)==1){ continue;//黑方格相同坐标的,不记录 }else{ if(oriArray[i].substr(j,1)==1){ oriX[blaOriCnt]=i; oriY[blaOriCnt]=j; blaOriCnt++; }elseif(tarArray[i].substr(j,1)==1){ tarX[blaTarCnt]=i; tarY[blaTarCnt]=j; blaTarCnt++; } } } } if(blaOriCnt==0||blaTarCnt==0){//无黑格,返回0 cout0; return0; }intstepDiff[8][8];//最大8个黑方格 for(i=0;iblaOriCnt;i++){ for(intj=0;jblaOriCnt;j++){ stepDiff[i][j]=abs(tarX[i]-oriX[j])+abs(tarY[i]-oriY[j]); } } int*permuSortKey=newint[blaOriCnt]; for(i=0;iblaOriCnt;i++){ permuSortKey[i]=i; minStep=minStep+stepDiff[i][i]; }

文档评论(0)

136****3415 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档