Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert RGB Image to Grayscale Image in DLIB

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.

like image 721
siffkroete Avatar asked Jan 05 '23 19:01

siffkroete


1 Answers

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

like image 193
Evgeniy Avatar answered Jan 17 '23 04:01

Evgeniy