好的,所以我正在写一些用于图像处理的代码,其中大部分是从一些旧的matlab代码转换而来的,用于相同的处理。现在(这个过程的最后一步)我需要将一个数组作为索引传递给另一个数组。在
一点背景:我将图像分成RGB波段或遮罩。在前面的代码中,我获取了所有的图像(作为numpy数组),并沿着第三维度取了一个中值。我试着把RGB掩码作为参数传递,这样我就可以得到这些像素值的中值,用0代替RB像素。在
Matlab中的代码非常简单:
finalMedGreen_ROI(exp_i+1) = median(median(EXPMedian_ROI(GMask_ROI)));
其中GMask_ROI是一个数组,它是原始图像数据的感兴趣区域,EXPMedian_ROI是所有原始图像数据的中值)。在
我尝试在python中复制:
^{pr2}$我得到了一个错误:
TypeError: 'numpy.ndarray' object is not callable
我试图简单地将两个数组作为参数传入np.中值. 事情是这样的,self.green_mask_投资回报率是一个布尔值数组(绿色像素为true,其他像素为false。当我运行这个:
self.final_median_green_roi[0,1] = np.median(np.median(self.dark_median_roi,self.green_mask_roi))
我有个错误:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
我不确定它是建议使用布尔数组还是数值中值数组,我更希望它是正确的,因为我是图像处理新手,我不太可能发现错误。有什么建议吗?在
使用numpy的内置掩码数组:
这将通过创建第二个参数的掩码来创建一个新数组,self.green_mask_投资回报率,并将其应用于1号,self.dark_平均投资回报率,以便得到一个数组,该数组包含self.dark_平均投资回报率也存在于self.green_mask_投资回报率. 在
相关问题 更多 >
编程相关推荐