我需要矢量化两个嵌套for循环,不知道怎么做。一个用于灰度图像,一个用于彩色图像。我想用kuwahara过滤器过滤图像。下面的代码是我需要矢量化的最后一步,以获得一个快速函数。你知道吗
我需要从mean数组中得到正确的值,然后放入img\u kuwahara数组。你知道吗
作为示例数据,您可以使用以下数组:
指数最小值np.数组([[0,1,1,2,3],[3,3,2,2],[2,3,3,0,2],[0,1,1,0,3],[2,1,3,0,0]])
平均值=np.random.randint随机数(0,256,大小=(4,5,5))(灰度图像)
平均值=np.random.randint随机数(0,256,大小=(3,4,5,5))(彩色图像)
行=5,列=5
谢谢你的帮助
# Edit gray scale image
if len(image.shape) == 2:
# Set result image
img_kuwahara = np.zeros((row, columns), dtype=imgtyp)
for k in range(0, row):
for i in range(0, columns):
img_kuwahara[k, i] = mean[index_min[k, i], k, i]
# Edit color image
if len(image.shape) == 3:
# Set result image
img_kuwahara = np.zeros((row, columns, 3), dtype=imgtyp)
for k in range(0, row):
for i in range(0, columns):
img_kuwahara[k, i, 0] = mean[0][index_min[k, i], k, i]
img_kuwahara[k, i, 1] = mean[1][index_min[k, i], k, i]
img_kuwahara[k, i, 2] = mean[2][index_min[k, i], k, i]
第一个循环可以使用^{} 矢量化:
第二个循环可以通过使用额外的^{} 来矢量化(假设
mean
在这种情况下实际上是一个4D数组,而不是一个3D数组列表;否则就转换它):除了} (它支持更自然的语法):
np.meshgrid
之外,还可以使用^{相关问题 更多 >
编程相关推荐