cv::Mat bgr[3]; cv::split(src, bgr); // 分离颜色通道 cv::Mat gray; cv::cvtColor(src, gray, cv::COLOR_BGR2GRAY); // 转为灰度图 cv::Mat dark; cv::min(cv::min(bgr[0], bgr[1]), bgr[2]).copyTo(dark); // 暗通道
时间: 2024-02-02 08:03:59 浏览: 106
opencv 颜色通道的分离及混合
这段代码是用OpenCV库对一张彩色图像进行暗通道先验处理的操作。首先使用split函数将彩色图像分离成三个通道(蓝色、绿色和红色)。然后使用cvtColor函数将彩色图像转换成灰度图像。接着使用min函数对三个通道的像素值进行逐元素比较,得到每个像素在三个通道中最小值,从而得到一张暗通道图像。最后使用copyTo函数将暗通道图像复制到一个新的Mat对象dark中。暗通道先验是计算全球大气光照(Airlight)和深度(Transmission)的一种方法,该方法被广泛应用于图像去雾、图像增强等领域。
阅读全文