在DLIB中将RGB图像转换为灰度图像

时间:2016-07-04 08:50:04

标签: c++ image-processing dlib

如何将dlib::array2d<bgr_pixel>转换为灰色图像?

灰色图片应为array2d<unsigned_char>

我从未在这个问题上看到过很好的dlib文档。

1 个答案:

答案 0 :(得分:8)

dlib :: array2d已经是一个图像,你可以将它用于任何dlib的图像函数

加载图片:

dlib::array2d<dlib::rgb_pixel> img_rgb;
dlib::load_image(img_rgb, "test_image.jpg");

转换为灰度:

dlib::array2d<unsigned char> img_gray;
dlib::assign_image(img_gray, img_rgb);

converto转换为OpenCV Image(cv :: Mat):

#include <dlib/opencv.h>
#include <opencv2/opencv.hpp>
cv::Mat img = dlib::toMat(img_gray);

从OpenCV获取图片:

#include <dlib/opencv.h>
#include <opencv2/opencv.hpp>
cv::Mat img = cv::imread("test_image.jpg")
dlib::cv_image<rgb_pixel> dlib_img(img); // only stores pointer, no deep copy

文档是here。有很多记录良好的例子,你应该从它们开始。 Special example about array2d