gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 15:02:41 25 4
gpt4 key购买 nike

好吧,我正在编写一些用于图像处理的代码,其中大部分是从一些旧的 matlab 代码转换而来的,用于相同的过程。现在我(该过程的最后一步)需要将一个数组作为索引传递给另一个数组。

一点背景知识:我将图像分成 RGB 波段或蒙版。在代码的前面,我获取了所有图像(作为 numpy 数组),并沿第三维获取了中值。我尝试将 RGB 掩码作为参数传递,这样我就可以获得这些像素值的中值,并用 0 代替 RB 像素。

Matlab 中执行此操作的代码非常简单:

finalMedGreen_ROI(exp_i+1) = median(median(EXPMedian_ROI(GMask_ROI)));

其中 GMask_ROI 是一个数组,是原始图像数据的感兴趣区域,EXPMedian_ROI 是所有原始图像数据的中值。

我尝试在 python 中复制这个:

self.final_median_green_roi[image+1] = np.median(np.median(self.exposure_median_roi(self.green_mask_roi)))

我得到了这个错误:

TypeError: 'numpy.ndarray' object is not callable

我尝试简单地将两个数组作为 np.median 中的参数传递。事情是这样的, self.green_mask_roi 是一个 bool 值数组(对于绿色像素为 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()

我不确定它是否建议 bool 数组或数字中值数组,我宁愿简单地得到它,因为我是图像处理新手,而且我不太可能发现错误。有什么建议吗?

最佳答案

使用 numpy 的内置掩码数组:

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

这通过创建第二个参数 self.green_mask_roi 的掩码并将其应用于第一个参数 self.dark_median_roi 来创建一个新数组,这样您就得到一个包含 self.dark_median_roi 的所有原始元素的数组也存在于 self.green_mask_roi 中。

关于python - 将一个数组作为索引传递给另一个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44931812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com