比较2个小区域的屏幕python pygame

时间:2017-02-21 11:12:53

标签: python pygame

我很擅长使用p​​ygame。我希望在我的树莓派上制作一个基本的明星跟踪程序。

到目前为止,我已经使用pygame编写了一个代码,通过我的相机镜头在夜空和星星的屏幕上显示网络摄像头。我创建了一个由鼠标控制的可移动目标精灵。

我想知道的是如何使用可移动目标选择一颗恒星(或者可能只是恒星所在的屏幕区域),然后让程序检测到恒星运动的时间是5像素

我正在考虑比较屏幕的两个部分或类似的东西,这是可能的。 (顺便说一句,我在屏幕上暂时创建了一些虚拟星星,只是为了测试,这样我的相机在测试时不必总是指向星星。)。无论如何,感谢任何帮助。到目前为止,我已经在我的程序下面包含了一些内容。[python]

import pygame
import sys
from pygame.locals import *
pygame.init
import pygame.camera
pygame.font.init()
import time
import os 
import RPi.GPIO as GPIO 
import datetime 
import time 
from time import sleep

#setup GPIO pins
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(22,GPIO.OUT)

#set initial state of GPIO
GPIO.output(22,0)

# set simple names for colours instead of numbers
white=(255,255,255)
black=(0,0,0)
red=(255,0,0)
green=(0,255,0)
blue=(0,0,255)
yellow=(255,255,0)
cyan=(0,255,255)
purple=(255,0,255)


pygame.init()
pygame.camera.init()
screen = pygame.display.set_mode((640,480))
pygame.display.set_caption('WEB CAM STAR VIEWER') 
cam = pygame.camera.Camera("/dev/video0",(640,480))
cam.start()

mysprite=pygame.image.load('/home/pi/Desktop/adder_guider/target.png')
myspritex=10
myspritey=10

while True:
    image = cam.get_image()
    screen.blit(image,(0,0))
    pygame.draw.circle(screen, white, (50,50),5,5) # circle (centre point), radius, width
    pygame.draw.circle(screen, white, (90,150),5,5) # circle (centre point), radius, width
    pygame.draw.circle(screen, white, (180,250),5,5) # circle (centre point), radius, width
    pygame.draw.circle(screen, white, (250,350),5,5) # circle (centre point), radius, width
    pygame.draw.circle(screen, white, (390,200),5,5) # circle (centre point), radius, width
    pygame.draw.circle(screen, white, (450,209),5,5) # circle (centre point), radius, width


    pygame.display.update()

    Mouse_x, Mouse_y = pygame.mouse.get_pos()
    screen.blit(mysprite,(Mouse_x-78,Mouse_y-78))
    pygame.display.update()

    colour=screen.get_at((Mouse_x,Mouse_y))

    print "The colour is ", colour
    #check for white
    if colour ==(255,255,255,255): #check what colour a    pixel is and do something

        print "the colour is white"
        GPIO.output(22,1)
        time.sleep(.1)
        GPIO.output(22,0)

    for event in pygame.event.get():#check for quit
        if event.type == pygame.QUIT:
            sys.exit()

0 个答案:

没有答案