4

How can I convert a dlib::array2d<bgr_pixel> to gray Image?

The gray Image should be array2d<unsigned_char>.

I never see a good dlib documentation on that issue.

Royi
  • 4,640
  • 6
  • 46
  • 64
siffkroete
  • 51
  • 2
  • 6

1 Answers1

11

dlib::array2d is an image already, you can use it for any dlib's image functions

load image:

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

convert to greyscale:

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

converto to OpenCV Image (cv::Mat):

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

get image from 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

Documentation is here. There are a lot of well-documented examples, you should start from them. Special example about array2d

Evgeniy
  • 2,481
  • 14
  • 24