【问题标题】:Creating histogram at each pixel location considering the window around it in python考虑到python中周围的窗口,在每个像素位置创建直方图
【发布时间】:2012-07-24 17:55:31
【问题描述】:

考虑到像素的一些相邻窗口,我必须在每个像素处创建局部直方图。

numpy.histogram(image,bins=256)

创建整个图像的直方图。我可以给它图像的特定部分,但我不想使用循环。

【问题讨论】:

  • 您能否更具体地说明您期望的输出类型?对histogram 的每次调用的输出是一个计数向量(以及另一个 bin 位置),因此您需要决定如何为 x,y 循环中的每个调用存储该信息。
  • 输出将是直方图的二维数组,其中直方图索引是图像中对应的 (x,y) 像素。对于直方图,它将包含用户指定的 bin。

标签: python image image-processing histogram


【解决方案1】:

此代码应该为您提供矩形中图像部分的直方图,其左上角为(x1, y1),右下角为(x2, y2)

numpy.histogram(image[x1:x2, y1:y2], bins=256)

如果您想对图像中的每个像素执行此操作,您将不得不使用循环。

【讨论】:

  • 谢谢,我一直在寻找pythonic的方式,其实我相信一定有办法做到的!
  • 如果您定义一个在像素处创建局部直方图的函数,您可能可以使用map 为图像中的每个像素调用该函数。这至少会将循环推到你看不到它的地方,尽管你最终会得到一个直方图数组。
  • 您也可以考虑使用numpy.ndimage generic_filter, scipy.org/SciPyPackages/Ndimage
  • @mutzmatron,我不完全知道如何使用 generic_filter。如果您能发布示例代码,那就太好了。非常感谢。
  • @Shan - 给定所需的输出,generic_filter 将不起作用(它提供与输入大小相同的输出)。我想地图将是要走的路。
猜你喜欢
  • 2017-07-16
  • 2014-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-09
  • 1970-01-01
  • 2021-05-22
相关资源
最近更新 更多