cv2.error:OpenCV /clahe.cpp:351 error: (-215:Assertion failed) _src.type() == CV_8UC1 || CV_16UC1 in

限制对比度自适应直方图均衡(Contrast Limited Adaptive histgram equalization/CLAHE),在python opencv中使用可按照以下方法:

import cv2
im = cv2.imread('img.jpg',0)
clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8,8))
img = clahe.apply(im)

但是出于需要,我的程序里代替im的是一个二维numpy数组,直接对数组调用clahe方法,于是出错:

cv2.error:OpenCV /clahe.cpp:351 error: (-215:Assertion failed) _src.type() == CV_8UC1 || _src.type() == CV_16UC1 in function 'apply'

我们知道cv2.imread读入的数组dtype是uint8,而且从错误中可看出,apply的源数据要求类型也是uint8或者uint16,所以将我的二维数组也转换成’uint8’:

x=np.array(x,dtype='uint8')

clahe.apply即可顺利运行。

你可能感兴趣的:(cv2.error:OpenCV /clahe.cpp:351 error: (-215:Assertion failed) _src.type() == CV_8UC1 || CV_16UC1 in)