网站大量收购闲置独家精品文档,联系QQ:2885784924

图像处理与二维游戏.pptVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

膨胀与腐蚀(Dilation,Erosion)数学形态学里面最重要的操作腐蚀将图像的尺寸减少膨胀增加图像的尺寸可以用来消除图像上小的亮斑噪声和不规则的边腐蚀(续)定义:物体的颜色是白,背景是黑定义腐蚀模板为111111将模板与图像进行加操作如果有,则结果为1,否则为0腐蚀(续)模板的效果相当于去掉物体边界处的单个象素4种情况:当前处理象素为1,邻域象素为1-》1当前处理象素为0,邻域象素为1-》0当前处理象素为0,邻域象素为1、0的混合-》0当前处理象素为1,邻域象素为1、0的混合-》1腐蚀(续)原始图像腐蚀后的图像腐蚀两次 膨胀是腐蚀的逆操作模板文件是000000其效果相当于在物体的边界添加单个象素膨胀膨胀(续)4种情况当前处理象素为0,邻域象素为0-》0当前处理象素为1,邻域象素为1-》1当前处理象素为1,邻域象素为1、0的混合-》1当前处理象素为0,邻域象素为1、0的混合-》1逻辑操作算子是Or膨胀(续)原始图像膨胀多次后的图像膨胀图像固定地图拼接算法实现 for(yi=0;yiy轴小地图个数;yi++){ for(xi=0;xix轴小地图个数;xi++){ intscreenx=xi*tile_wide; //乘以宽度得到最后屏幕上位置 intscreeny=yi*tile_high; inttileid=mapping_matrix[yi][xi]; //在这个数组中存放着对应位置的小地图编 //号,如1表示水,2表示石头,3表示砖等 blit(tillid,screenx,screeny); //自编函数,把相应地图贴到正确位置 } }该程序段中blit函数的实现,可以调用Windows系统的一个API函数BitBlt直接实现滚屏地图是固定地图的进一步扩展,可以显示远大于固定地图的图像根据玩家所在位置,确定显示的地图部分滚屏地图滚屏地图算法实现变量设置:playerx,playery为人物相对于完整地图左上角的坐标;screen_wide,screen_high为屏幕的宽和高;xtile为屏幕上x轴上可显示的小地图个数;ytile为屏幕上y轴上可显示的小地图个数;tileplayerx=playerx/tile_wide为人物所在格x轴下标;tileplayery=playery/tile_high为人物所在格y轴下标;应该绘制的地图范围是:x轴:由tileplayerx-xtile/2至tileplayerx+xtile/2;y轴:由tileplayery-ytile/2至tileplayery+ytile/2;当人物在屏幕正中央时,地图到屏幕的位置变化公式为:screenx=xi*tile_wide–playerx+0.5*screen_widescreeny=yi*tile_high–playery+0.5*screen_high滚屏地图算法实现(续)例程: intbeginx=tileplayerx-xtile/2 intendx=tileplayerx+xtile/2 intbeginy=tileplayery-ytile/2 intendy=tileplayery+ytile/2 tileplayerx=playerx/tile_widetileplayery=playery/tile_high for(yi=beginy;yiendy;yi++){ for(xi=beginx;xiendx;xi++){ intscreenx=xi*tile_wide–playerx+0.5*screen_wide; //屏幕上位置 intscreeny=yi*tile_high–playery+0.5*screen_high;inttileid=mapping_matrix[yi][xi]; //地图数据数组 blit(tillid,s

文档评论(0)

gongmengjiao + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档