我使用pyshearlab包去噪image.The函数,期望图像形状相等,执行去噪,对于一些图像,去噪是可以的,但是有些图像会产生这样的错误。ValueError:操作数不能与形状(400,400,3) (400,400)一起广播。所以我用img.size打印了图像的形状,它给出了(400,400,3)
我的问题是,是否有可能从图像中消除第三个参数。谁来帮帮我。
我用它来进行图像去噪,transformations.There是许多用于在matlab.Is中进行图像转换的工具包,在python中可以使用任何软件包来进行轮廓去噪、曲线去噪、带去噪等等。
发布于 2018-02-12 08:45:41
当您在numpy中有一个形状的图像数组(400,400,3)时,这意味着您的图像的高度和宽度为400x400和3个通道。
大部分时间是红色,绿色和蓝色。另一个形状的图像(400,400)只有一个通道。所以这些图像不能很好地结合在一起。
你有几个选择。它实际上取决于您的函数对图像所做的操作,以及您的输出需要是什么。
您可以将3通道图像分割成不同的通道,并独立处理它们。
channel1 = image[:, :, 0]
channel2 = image[:, :, 1]
channel3 = image[:, :, 2]然后稍后再合并
image = np.dstack((channel1, channel2, channel3))或者,如果你确信你不需要所有的通道,在灰度图像的情况下,所有的通道可能有相同的值,你可以删除两个并且只保留一个。
或者,您可以将您的一个通道图像增加到三个通道,以便它们具有相同的维度(也可以使用np.dstack )。
https://stackoverflow.com/questions/48741504
复制相似问题