Python基于分水岭算法解决走迷宫游戏示例

Python基于分水岭算法解决走迷宫游戏示例,第1张

概述本文实例讲述了Python基于分水岭算法解决走迷宫游戏。分享给大家供大家参考,具体如下:

本文实例讲述了Python基于分水岭算法解决走迷宫游戏。分享给大家供大家参考,具体如下:

#Solving maze with morphological transformation"""usage:Solving maze with morphological transformationneeded module:cv2/numpy/sysref:1.http://www.mazegenerator.net/2.http://blog.leanote.com/post/leeyoung/539a629aab35bc44e2000000@author:Robin Chen"""import cv2import numpy as npimport sysdef SolvingMaze(image):#load an image  try:    img = cv2.imread(image)  except Exception,e:    print 'Error:can not open the image!'    sys.exit()#show image  #cv2.nameDWindow('image',cv2.WINDOW_norMAL)  cv2.imshow('maze_image',img)#convert to gray  gray_image = cv2.cvtcolor(img,cv2.color_BGR2GRAY)#show gray image  #cv2.imshow('gray_image',gray_image)#convert to binary image  retval,binary_image = cv2.threshold(gray_image,10,255,cv2.THRESH_BINARY_INV)  #cv2.imshow('binary_image',binary_image)  contours,hIErarchy = cv2.findContours(binary_image,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE)  if len(contours) != 2:    sys.exit("This is not a 'perfect maze' with just 2 walls!")  h,w,d = img.shape#The first wall  path = np.zeros((h,w),dtype = np.uint8)#cv2.CV_8UC1  cv2.drawContours(path,contours,(255,255),-1)#cv2.FILLED  #cv2.imshow('The first wall',path)#Dilate the wall by a few pixels  kernel = np.ones((19,19),dtype = np.uint8)  path = cv2.dilate(path,kernel)  #cv2.imshow('Dilate the wall by a few pixels',path)#Erode by the same amount of pixels  path_erode = cv2.erode(path,kernel);  #cv2.imshow('Erode by the same amount of pixels',path_erode)#absdiff  path = cv2.absdiff(path,path_erode);  #cv2.imshow('absdiff',path)#solution  channels = cv2.split(img);  channels[0] &= ~path;  channels[1] &= ~path;  channels[2] |= path;  dst = cv2.merge(channels);  cv2.imshow("solution",dst);#waiting for any key to close windows  cv2.waitKey(0)  cv2.destroyAllwindows()if __name__ == '__main__':  image = sys.argv[-1]  SolvingMaze(image)

更多关于Python相关内容可查看本站专题:《Python游戏开发技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串 *** 作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录 *** 作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

总结

以上是内存溢出为你收集整理的Python基于分水岭算法解决走迷宫游戏示例全部内容,希望文章能够帮你解决Python基于分水岭算法解决走迷宫游戏示例所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/langs/1201553.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存