使用OpenCV直方图均衡化时遇到问题

时间:2018-10-11 11:39:17

标签: python opencv image-processing histogram

我正在尝试在Contrast Limited Adaptive Histogram Equalisation中使用OpenCV(CLAHE),但遇到错误了

错误 enter image description here

代码

import cv2 as cv
from matplotlib import pyplot as plt

imgG = cv.imread('sample.png')

clahe = cv.createCLAHE(clipLimit=2.0, tileGridSize=(8,8))
imgC  = clahe.apply(imgG)

fig = plt.figure(figsize = (20,20))
ax  = fig.add_subplot(111)
ax.imshow(imgC, cmap='gray')
plt.show()

有人猜为什么会发生

1 个答案:

答案 0 :(得分:1)

该错误表明:(-215) _src.type() == CV_8UC1 || _src.type() == 16UC1,这基本上意味着clahe.apply()的输入矩阵可以是单个通道 8位矩阵或单个通道 16位矩阵。 8UC1中的1表示输入矩阵中预期的通道数,因为您将图像读取为cv.imread('sample.png'),因此默认情况下它将读取3通道BGR图像。读取图像后,您可以使用cv.imread('sample.png', 0)或使用img = cv.cvtColor(img, cv.COLOR_BGR2GRAY)