网站页面设计合同,内部网站建设教程,网站素材免费下载,WordPress文章提交百度OpenCV 的LAB 颜色空间#xff08;也称为 CIELAB#xff09;是一种颜色对手的颜色模型#xff0c;它旨在模仿人类的色彩感知。LAB 颜色空间由三个分量组成#xff1a; L: 亮度分量 (Lightness)#xff0c;范围从 0#xff08;黑色#xff09;到 100#xff08;白色也称为 CIELAB是一种颜色对手的颜色模型它旨在模仿人类的色彩感知。LAB 颜色空间由三个分量组成 L: 亮度分量 (Lightness)范围从 0黑色到 100白色。
A: 范围从 -127 到 127表示从绿色到红色的变化。
B: 范围从 -127 到 127表示从蓝色到黄色的变化。
在 OpenCV 中可以使用 cvtColor 函数来将图像从一种颜色空间转换到另一种颜色空间包括转换到 LAB 颜色空间。我们可以通过L的亮度分量来初步判断当前摄像头获取的图像颜色偏暗还是偏亮若是偏暗可以采用补光的方式来增加外部环境的光照亮度。简单的实例代码如下
#include opencv2/opencv.hpp
#include iostream int main() { cv::VideoCapture *m_capture new cv::VideoCapture; cv::Mat img; // 打开摄像头 m_capture-open(0,cv::CAP_V4L2); m_capture-set( cv::CAP_PROP_FRAME_WIDTH, 800 );
m_capture-set( cv::CAP_PROP_FRAME_HEIGHT, 600 ); while(1)
{ // 读取图像
m_capture-read(img) ; if (img.empty()) { std::cout Could not open or find the image std::endl; return -1; } // 显示原始图像 cv::imshow(Original Image, img); // 将图像从 BGR 转换为 LAB cv::Mat lab_img; cv::cvtColor(img, lab_img, cv::COLOR_BGR2Lab); // 分离 LAB 图像通道 std::vectorcv::Mat lab_planes; cv::split(lab_img, lab_planes); // 显示 LAB 图像的每个通道 cv::imshow(L Channel, lab_planes[0]); cv::imshow(A Channel, lab_planes[1]); cv::imshow(B Channel, lab_planes[2]); } return 0;
}