【发布时间】:2020-06-14 08:11:27
【问题描述】:
我正在尝试在psychopy 中为图像添加噪点。我正在使用 imread 但似乎无法读取所需格式的图像,从而为整个图像的单个像素添加噪点。我希望有人可能对我如何能够做到这一点有想法。
具体来说,我的任务以参与者自己的感知阈值向他们提供刺激。我正在使用自适应楼梯程序(任务处理程序)在试验之间滴定添加到图像中的噪声量以达到此阈值。即参与者正确识别图像,下一张图像有更多噪声;他们错误地识别图像,下一次试验的噪音较小。我们在重复试验中这样做,以获得参与者正确回答一定百分比的试验所需的噪音量。
我试图通过更改单个像素以添加高斯噪声,在每次试验中添加一定量的噪声,该噪声量等于从任务处理程序传递的噪声百分比。我不想改变原始图像。我设想这是通过将图像作为像素矩阵读取、复制、向该矩阵中的像素添加噪声、并为该试验呈现新的刺激来实现的。我用来读取图像的 imread 功能似乎无法做到这一点 - 有人有什么建议吗?
【问题讨论】:
-
imread应该返回一个允许您通过像素坐标直接访问像素的对象:请参阅docs.opencv.org/3.4/d5/d98/tutorial_mat_operations.html,记住按下“Python”按钮以查看正确的语法。 -
这很有帮助,谢谢。我认为我坚持使用它的地方是我希望避免使用坐标逐个像素地搜索以添加噪声 - 我拥有的脚本是添加一定百分比的随机噪声分布。我是否正确,这种方法需要使用它们的坐标搜索我想改变的每个像素?
-
不,它是一个矩阵,因此(例如使用
numpy库),您可以获取噪声分布矩阵并将图像的所有相应元素(即像素)和噪声相加步骤(即单个矩阵加法)。例如stackoverflow.com/a/30624520/3592211 -
好的。您提供的代码是我为给我的图像添加噪点而改编的代码。我们试图实现它的错误导致我们相信我们的图像没有被正确读取。我将尝试使用您第一条评论中的信息进行编辑,并会更新是否成功!
-
好的,祝你好运。如果问题仍然存在,要获得关于 SO(而不是像这样的 cmets 流)有用的特定答案,您可能应该编辑帖子以显示您使用的代码(理想情况下是可以实际运行的摘录)和确切的输出您收到的任何错误消息(和/或有关它如何以其他方式未能达到预期目的的描述)。
标签: python image noise psychopy