我正在尝试在Contrast Limited Adaptive Histogram Equalisation中使用OpenCV(CLAHE),但出现以下错误

错误
python - 使用OpenCV直方图均衡化时遇到问题-LMLPHP

代码

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()

任何猜测为什么会发生

最佳答案

该错误表明:(-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)

08-17 10:08