python报错求解~
cv2 没有 createCLAHE 属性a[x] >= c 是一个表达式,返回的是这个表达式的结果,即一个 bool 类型的对象
[].extend 方法接受的参数是可迭代的(iterable)对象,
a = [1,2,3]
b = [4,5,6]
a.extend(b)# a=[1, 2, 3, 4, 5, 6]
楼主此处应该用 append 方法
使用列表解析是最pythonic的解法,也是效率最高的
b = [x for x in a if x >= c]
opencv中有没有提供限制对比度的自适应直方图均衡化
1.CLAHE简介
HE直方图增强,大家都不陌生,是一种比较古老的对比度增强算法,它有两种变体:AHE和CLAHE;两者都是自适应的增强算法,功能差不多,但是前者有一个很大的缺陷,就是有时候会过度放大图像中相同区域的噪声,为了解决这一问题,出现了HE的另一种改进算法,就是CLAHE;CLAHE是另外一种直方图均衡算法,能有效的增强或改善图像(局部)对比度,从而获取更多图像相关边缘信息有利于分割,比如在书架识别系统中的书脊切割中,使用CLAHE可以比传统的直方图增强方法达到更好的增强书脊边界直线的效果,从而有利于后续的书脊边界直线的检测和提取。还能够有效改善AHE中放大噪声的问题,虽然在实际中应用不多,但是效果确实不错。另外,CLAHE的有一个用途是被用来对图像去雾,跟何凯明的暗通道去雾效果有的一拼。
CLAHE和AHE的区别在于前者对区域对比度实行了限制,并且利用插值来加快计算。
2.CLAHE在OpenCV中的使用
2.1 增强灰度图像
[cpp] view plain copy
Ptr<:clahe> clahe = createCLAHE();
clahe->setClipLimit(clipLimit);
clahe->apply(src, dst);
2.2 增强彩色图像
[cpp] view plain copy
vector BGR;
split(src,BGR);
Ptr<:clahe> clahe = createCLAHE();
clahe->apply(BGR[0],BGR[0]);
clahe->apply(BGR[1],BGR[1]);
clahe->apply(BGR[2],BGR[2]);
Mat res;
merge(BGR,res);