繁体   English   中英

numpy从3d数组中删除2d索引

[英]Numpy delete 2d index from 3d array

我有RGB图像3d数组,当我应用np时,我想删除那里2d位置标识的特定像素。删除输出后无法重新整形为3d数组,例如:

indices = [(23, 21),(24, 22),(23, 23),(23, 24),(23, 25),(22, 26)]

I = np.empty(ImageRGB.shape())

I = np.delete(ImageRGB,obj=indices)    

问题:由于第三个颜色通道,无法重新调整“ I”形状。

如何删除带有颜色通道的索引中的元素

np.delete实际上是要删除数组的各个部分,但这可能不是您要从图像中删除像素时要执行的操作。 相反,您可能希望将这些像素设置为某个“背景”值,取决于黑色( [0, 0, 0] )或白色(可能[255, 255, 255] [1, 1, 1][255, 255, 255] ,具体取决于图片的编码方式)。

您可以使用NumPy的索引设置这些值; 例如:

image_rgb = np.random.rand(30, 30, 3)
indices = [(23, 21),(24, 22),(23, 23),(23, 24),(23, 25),(22, 26)]

i, j = zip(*indices)
image_rgb[i, j] = [0, 0, 0] # set values to black

我尝试了一个解决方案,并且工作正常。 在对每个图像应用np.delet之后,我将图像分为三个颜色通道,并再次重新组合它们。

谢谢大家 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM