首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ValueError:操作数不能与形状一起广播(400,400,3) (400,400)

ValueError:操作数不能与形状一起广播(400,400,3) (400,400)
EN

Stack Overflow用户
提问于 2018-02-12 07:36:43
回答 1查看 1.3K关注 0票数 0

我使用pyshearlab包去噪image.The函数,期望图像形状相等,执行去噪,对于一些图像,去噪是可以的,但是有些图像会产生这样的错误。ValueError:操作数不能与形状(400,400,3) (400,400)一起广播。所以我用img.size打印了图像的形状,它给出了(400,400,3)

我的问题是,是否有可能从图像中消除第三个参数。谁来帮帮我。

我用它来进行图像去噪,transformations.There是许多用于在matlab.Is中进行图像转换的工具包,在python中可以使用任何软件包来进行轮廓去噪、曲线去噪、带去噪等等。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-12 08:45:41

当您在numpy中有一个形状的图像数组(400,400,3)时,这意味着您的图像的高度和宽度为400x400和3个通道。

大部分时间是红色,绿色和蓝色。另一个形状的图像(400,400)只有一个通道。所以这些图像不能很好地结合在一起。

你有几个选择。它实际上取决于您的函数对图像所做的操作,以及您的输出需要是什么。

您可以将3通道图像分割成不同的通道,并独立处理它们。

代码语言:javascript
复制
channel1 = image[:, :, 0]
channel2 = image[:, :, 1]
channel3 = image[:, :, 2]

然后稍后再合并

代码语言:javascript
复制
image = np.dstack((channel1, channel2, channel3))

或者,如果你确信你不需要所有的通道,在灰度图像的情况下,所有的通道可能有相同的值,你可以删除两个并且只保留一个。

或者,您可以将您的一个通道图像增加到三个通道,以便它们具有相同的维度(也可以使用np.dstack )。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48741504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档