我想编程一个视觉搜索任务,在这个任务中,参与者被呈现一个视觉场景,并且必须通过点击它来识别一个目标对象,此时试验结束。对于每一个嵌入目标的视觉场景(视觉场景刺激),我有一个完全空白的图像,除了目标(目标刺激),它是黑色的,并且与它在视觉场景刺激中的精确位置相同。
我已经做了一些实验,在试验中,python从图像库中提取一个视觉场景,并将其呈现给参与者,如下所示。
for i in range(numTrials):
theTrial = trialOrder[i] # grab pre-shuffled trial index
win.flip()
core.wait(1.0) # wait one second
living_images[i].draw()
然而,我不知道如何为每个视觉场景刺激的目标创建一个感兴趣的区域,并在单击该部分时进行试验。
我设想我应该创建一个CSV,在一个列中使用视觉场景刺激,在另一个列中创建目标,然后告诉python根据每个相应目标图像的RGB值为每个视觉场景刺激创建一个感兴趣的区域(因为它们是空白的,除了在视觉场景刺激中相同位置的黑色目标)。
发布于 2017-11-12 21:01:10
我不知道您是如何设置UI的,以及用户应该如何与图像进行交互,但是如果您的场景图像和伴随的目标图像大小相同,则可以使用随附图像作为掩码。
让用户点击图像(视觉场景)并捕捉他们选择的位置。然后在那个位置检查伴随的目标图像的值。如果值为1(或0取决于您对“活动”值的选择),则会得到一个命中并继续前进。基本上,您可以使用您的目标图像作为ROI。
编辑:下面是一个小例子,说明如何做到这一点
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots()
ax.imshow(mask)
mask = np.zeros((50,50))
mask[5:10,5:10]=1
xi = 0
yi = 0
def onclick(event):
global xi,yi,mask
xi,yi = event.xdata,event.ydata
if mask[int(xi),int(yi)]>=1:
print('inside')
else:
print('outside')
cid = fig.canvas.mpl_connect('button_press_event', onclick)
所显示的图像不必是面具图像,而是任何您想要显示的场景。有关此选项的更多信息,请查看handling.html。
https://stackoverflow.com/questions/47253620
复制相似问题