pygame可以识别简单的几何形状吗?

时间:2015-07-16 03:12:21

标签: python image image-processing pygame

我想使用pygame创建一堆简单的几何形状(彩色矩形,三角形,正方形......),然后分析它们的关系和特征。我首先尝试turtle,但显然这只是一个图形库,无法跟踪它创建的形状,我想知道Pygame是否也是如此。为了说明这一点,请说我有这个脚本:

# Import a library of functions called 'pygame'
import pygame
from math import pi

# Initialize the game engine
pygame.init()

# Define the colors we will use in RGB format
BLACK = (  0,   0,   0)
WHITE = (255, 255, 255)
BLUE =  (  0,   0, 255)
GREEN = (  0, 255,   0)
RED =   (255,   0,   0)

# Set the height and width of the screen
size = [800, 600]
screen = pygame.display.set_mode(size)

pygame.display.set_caption("Example code for the draw module")

#Loop until the user clicks the close button.
done = False
clock = pygame.time.Clock()

while not done:

    # This limits the while loop to a max of 10 times per second.
    # Leave this out and we will use all CPU we can.
    clock.tick(10)

    for event in pygame.event.get(): # User did something
        if event.type == pygame.QUIT: # If user clicked close
            done=True # Flag that we are done so we exit this loop

    screen.fill(WHITE)
    # Draw a rectangle outline
    pygame.draw.rect(screen, BLACK, [75, 10, 50, 20], 2)
    # Draw a solid rectangle
    pygame.draw.rect(screen, BLACK, [150, 10, 50, 20])
    # Draw an ellipse outline, using a rectangle as the outside boundaries
    pygame.draw.ellipse(screen, RED, [225, 10, 50, 20], 2) 
    # Draw a circle
    pygame.draw.circle(screen, BLUE, [60, 250], 40)
    # Go ahead and update the screen with what we've drawn.
    # This MUST happen after all the other drawing commands.
    pygame.display.flip()

# Be IDLE friendly
pygame.quit()

它会创建此图像:

enter image description here

现在,假设我保存了Pygame创建的图像。 Pygame有没有办法从图像中检测出形状,颜色和坐标?

2 个答案:

答案 0 :(得分:3)

PyGame是一个游戏库 - 它有助于为游戏制作图形,音频和控制器。它不支持检测预先存在的图像中的对象。

你想要的是OpenCV(它有Python绑定) - 这是为了理解"关于图像的事情。

用于检测任何类型的形状(或边缘)的一种流行的数学算法是霍夫变换。您可以在此处详细了解相关信息 - http://docs.opencv.org/doc/tutorials/imgproc/imgtrans/hough_circle/hough_circle.html

OpenCV里面有Hough变换函数,非常有用。

您可以尝试制作自己的Hough变换代码并使用它......但是库可以让它变得更容易。

答案 1 :(得分:0)

是的,它可以,但是pygame也适合制作游戏但不幸的是,你无法将它们转换为IOS或Android,过去,有一个名为PGS4A的程序允许你将pygame项目转换为android但是遗憾的是,该计划已经停止,现在,没有办法。在这种情况下,我的想法是,如果您想要这样做,请从此链接“http://developer.android.com/sdk/index.html#top”下载Android Studio,并在谷歌上了解如何在Android Studio中使用libgdx,这个人有一个非常有用的教程,其中包含很多部分,但如果您的目标是制作商业应用程序,我强烈建议您查看本教程“https://www.youtube.com/watch?v=_pwJv1QRSPM”非常有帮助。祝你的目标好运,希望这有助于你做出决定,但是python是一种很好的编程语言,它将为你提供编程方式的基本思路。