我正在处理各种图像,我想实现一种方法,但我不知道从哪里开始。因此,我期待着一些建议
作为一种方法,我的想法是拍摄一个图像阵列,在选择一个感兴趣的区域后,我们说selectedROI是10x10像素区域作为一个阵列。然后,我如何制作一个大小为2x5的过滤器,以及在制作2x5过滤器之后,如何在选定的区域内移动过滤器,并比较每个2x5过滤器的最小值、最大值和最大值;平均值
我已经成功地实现了选择ROI并将selecedROI打印为阵列。
简单地说,我想做的就是选择一组像素,并在整个selectedROI中将这组像素与另一组像素进行比较。这怎么可能
Tags:
听起来像是有一个形状为(10,10)的像素阵列,并希望在阵列上滑动一个形状为(2,5)的窗口,在每个位置执行操作
NumPy的操作有助于实现这一点(请参见此处: https://numpy.org/devdocs/reference/generated/numpy.lib.stride_tricks.sliding_window_view.html),但是文档说滑动窗口视图是通用的,因此对您的情况来说不是最佳的。他们建议改为使用scipy.ndimage操作,我在下面展示了一些示例https://docs.scipy.org/doc/scipy/reference/reference/generated/scipy.ndimage.generic_filter.html
首先,我导入了包,并定义了10x10阵列和2x5过滤器大小
任何函数都可以使用通用_过滤器(此处使用的是np.average)以滑动窗口方式应用。选择变量a、b、c、d是因为泛型_过滤器为输入数组中的所有位置生成值,包括窗口不完全位于输入数组中的位置。有关切片中“或无”的解释,请参见此处: numpy negative indexing a[:-0]
您可以在您的用例中使用其他函数,例如np.min和np.max,或者编写您自己的自定义函数,如下所示:How do I use scipy.ndimage.filters.gereric_filter?
为了清晰起见,这些示例使用2D阵列,但操作应扩展到3D像素阵列
相关问题 更多 >
编程相关推荐