刚开始入门Opencv,无意间发现书本上有对rgb空间进行转换,我就查阅了一些资料,拓展到Lab的空间。
还有一种简单粗暴的读像素点rgb、gray、Lab通道信息的方法,img.at<uchar>(y,x)。
需要注意的是图像在opencv的存储顺序是bgr而不是rgb,同时lab的标准转换最后需要进行映射。
#include <opencv2/opencv.hpp>
//向编译器说明你所调用的函数处于cv、std命名空间
using namespace cv;
using namespace std;
int main()
{
cv::Mat img_rgb, img_rgb1, img_gray, img_lab, img_canny;
namedWindow("Window1", cv::WINDOW_AUTOSIZE);
namedWindow("Window2", cv::WINDOW_AUTOSIZE);
namedWindow("Window3", cv::WINDOW_AUTOSIZE);
namedWindow("Window4", cv::WINDOW_AUTOSIZE);
namedWindow("Window5", cv::WINDOW_AUTOSIZE);
img_rgb = imread("D:/Desktop/pic/色卡RGBCMYK.tif", -1);
if (img_rgb.empty()) return -1;
cv::imshow("Window1", img_rgb);