将一个数组作为索引传递给另一个数组?

2024-09-27 23:21:02 发布

您现在位置:Python中文网/ 问答频道 /正文

好的,所以我正在写一些用于图像处理的代码,其中大部分是从一些旧的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()

我不确定它是建议使用布尔数组还是数值中值数组,我更希望它是正确的,因为我是图像处理新手,我不太可能发现错误。有什么建议吗?在


Tags: 代码图像selfnumpynpgreenrgb像素
1条回答
网友
1楼 · 发布于 2024-09-27 23:21:02

使用numpy的内置掩码数组:

...  =np.median(np.median(np.ma.masked_array(self.dark_median_roi‌​, self.green_mask_roi)))

这将通过创建第二个参数的掩码来创建一个新数组,self.green_mask_投资回报率,并将其应用于1号,self.dark_平均投资回报率,以便得到一个数组,该数组包含self.dark_平均投资回报率也存在于self.green_mask_投资回报率. 在

相关问题 更多 >

    热门问题