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

sif*_*ete 3 c++ image-processing dlib

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

灰色的图像应该是array2d<unsigned_char>.

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

Evg*_*niy 8

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

加载图片:

dlib::array2d<dlib::rgb_pixel> img_rgb;
dlib::load_image(img_rgb, "test_image.jpg");
Run Code Online (Sandbox Code Playgroud)

转换为灰度:

dlib::array2d<unsigned char> img_gray;
dlib::assign_image(img_gray, img_rgb);
Run Code Online (Sandbox Code Playgroud)

converto到OpenCV Image(cv :: Mat):

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

从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
Run Code Online (Sandbox Code Playgroud)

文档在这里.有很多记录良好的例子,你应该从它们开始.关于array2d的特例