【发布时间】:2017-06-17 06:37:21
【问题描述】:
我写了一个简单的opencv程序,可以减少图像的噪音。
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('stream/horse.png')
dst = cv2.fastNlMeansDenoisingColored(img, None, 10, 10, 7, 21)
cv2.imshow(dst)
plt.subplot(121), plt.imshow(img)
plt.subplot(122), plt.imshow(dst)
plt.show()
当我运行程序时,它给出了一个错误。这是……
OpenCV Error: Bad argument (Type of input image should be CV_8UC3 or CV_8UC4!) in fastNlMeansDenoisingColored, file /home/govinda/github_repos/opencv/modules/photo/src/denoising.cpp, line 176
Traceback (most recent call last):
File "/home/govinda/workspace-python/opencv/src/Smle.py", line 7, in <module>
dst = cv2.fastNlMeansDenoisingColored(img, None, 10, 10, 7, 21)
cv2.error: /home/govinda/github_repos/opencv/modules/photo/src/denoising.cpp:176: error: (-5) Type of input image should be CV_8UC3 or CV_8UC4! in function fastNlMeansDenoisingColored
我该如何克服这个问题?
【问题讨论】:
-
您的链接是 jpeg 图片,而不是 png(我猜它已被转换)。所以很难调试出了什么问题。我会检查
print img.shape以查看通道数是3 还是4(同时检查图像是否读取成功)。