-1
我一直在想辦法將python上的Gabor補丁呈現在黑色背景上,並且一直在努力。我一般能獨立做的每一個元素 - 所以)我可以做一個黑色的背景屏幕出現,和b)我可以單獨運行這一串代碼,讓加博補丁出現在其自己單獨的屏幕上:如何在Pygame/Python 2.7中的屏幕上顯示Gabor補丁?
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
size = np.linspace(-np.pi,np.pi,200)
xgrid, ygrid = np.meshgrid(size, size)
gaussian = np.exp(-(xgrid/2)**2-(ygrid/2)**2)
sine = np.sin(xgrid*10)
gabor = sine * gaussian
plt.imshow(gabor,cm.gray)
plt.show()
但是我想能夠使一個Gabor補丁出現在黑色Pygame屏幕本身的預定位置。我看過一些YouTube的教程在Pygame的呈現圖像,並曾嘗試以下方法(沒有成功):
from win32api import GetSystemMetrics
import sys
import pygame
from pygame.locals import *
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import matplotlib.image as mpimg
import time
pygame.init()
Clock= pygame.time.Clock()
FPS =30
screenWidth=GetSystemMetrics(0)
screenHeight=GetSystemMetrics(1)
fullScreenSize=(screenWidth/2,screenHeight/2)
gameDisplay=pygame.display.set_mode(fullScreenSize)
BLACK = (0,0,0)
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT or event.type == KEYUP:
pygame.quit()
size = np.linspace(-np.pi,np.pi,200)
xgrid, ygrid = np.meshgrid(size, size)
gaussian = np.exp(-(xgrid/2)**2-(ygrid/2)**2)
sine = np.sin(xgrid*10)
gabor = sine * gaussian
x = ((screenWidth/2) * 0.3) #Left on the x-axis
y = ((screenHeight/2) * 0.45) #Mid-height on screen
#MY ATTEMPT TO SPECIFY A GABOR THAT IS TO BE PRESENTED ON THE LEFT SIDE OF THE SCREEN
def LeftGabor (x,y):
gameDisplay.blit(gabor,(x,y))
gameDisplay.fill(BLACK)
gameDisplay.blit(gabor,(x,y))
LeftGabor(x,y)
pygame.display.update()
Clock.tick(FPS)
使用此代碼,所發生的一切是一個黑色的屏幕上彈出。沒有其他的。有人能指出我做錯了什麼,並指出我朝着正確的方向嗎?
-1:你的代碼沒有格式化(縮進),很難閱讀並且包含很多不相關的信息。你確實可以在pygame中渲染numpy數組,有關於如何做的一些類似的問題,請參閱例如[我的答案在這裏](http://stackoverflow.com/questions/14206938/combine-numpy-arrays-by-reference/36535866#36535866) –