本文实例讲述了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基于分水岭算法解决走迷宫游戏示例所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)