首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在python中,使用一个图像的RGB值在另一个图像中创建感兴趣的区域。

在python中,使用一个图像的RGB值在另一个图像中创建感兴趣的区域。
EN

Stack Overflow用户
提问于 2017-11-12 20:30:19
回答 1查看 78关注 0票数 3

我想编程一个视觉搜索任务,在这个任务中,参与者被呈现一个视觉场景,并且必须通过点击它来识别一个目标对象,此时试验结束。对于每一个嵌入目标的视觉场景(视觉场景刺激),我有一个完全空白的图像,除了目标(目标刺激),它是黑色的,并且与它在视觉场景刺激中的精确位置相同。

我已经做了一些实验,在试验中,python从图像库中提取一个视觉场景,并将其呈现给参与者,如下所示。

代码语言:javascript
运行
复制
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值为每个视觉场景刺激创建一个感兴趣的区域(因为它们是空白的,除了在视觉场景刺激中相同位置的黑色目标)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-12 21:01:10

我不知道您是如何设置UI的,以及用户应该如何与图像进行交互,但是如果您的场景图像和伴随的目标图像大小相同,则可以使用随附图像作为掩码。

让用户点击图像(视觉场景)并捕捉他们选择的位置。然后在那个位置检查伴随的目标图像的值。如果值为1(或0取决于您对“活动”值的选择),则会得到一个命中并继续前进。基本上,您可以使用您的目标图像作为ROI。

编辑:下面是一个小例子,说明如何做到这一点

代码语言:javascript
运行
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47253620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档