【发布时间】:2018-07-13 04:45:55
【问题描述】:
这篇文章分为两部分
第一部分
我在将图像从灰度转换回 RGB 时遇到了一点问题。
有问题的图片:
我用这段代码来转换它:
equ = cv2.cvtColor(equ, cv2.COLOR_GRAY2RGB)
虽然没有成功...
第二部分
此外,我需要对此类图像进行去模糊处理。 Here 我发现了一些使用维纳过滤器的代码,但是当我实现它时,它似乎不能有效地工作。代码如下:
psf = np.ones((5, 5)) / 25
img = convolve2d(equ, psf, 'same')
img += 0.1 * img.std() * np.random.standard_normal(img.shape)
#deconvolved_img = restoration.wiener(img, psf, 1100)
deconvolved = restoration.wiener(img, psf, 1, clip=False)
plt.imshow(deconvolved, cmap='gray')
这是输出:
非常感谢您对这两个问题的任何帮助!
【问题讨论】:
-
对于您的第 1 部分,如果您使用
equ = cv2.cvtColor(equ, cv2.COLOR_GRAY2RGB),您应该得到一个 3 通道图像,但没有颜色,因为所有通道的值都与灰度图像相同。 -
@LakshyaKejriwal 但是我该如何回到
RGB格式呢?我将图像转换为grayscale,以便对其执行直方图均衡化,据我所知,去模糊也是在图像的grayscale版本上完成的 -
OpenCV 没有任何内置函数来为灰度图像着色。为此,您需要研究像 this 这样使用深度学习的开源项目。
标签: python opencv rgb scikit-image grayscale