Преобразование изображения RGB в изображение в градациях серого в DLIB

Как я могу преобразовать dlib::array2d<bgr_pixel> в серое изображение?

Серое изображение должно быть array2d<unsigned_char>.

Я никогда не видел хорошей документации по dlib по этому вопросу.


person siffkroete    schedule 04.07.2016    source источник


Ответы (1)


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);

конвертировать в изображение OpenCV (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

Документация находится здесь. Хорошо задокументированных примеров много, с них и стоит начинать. Специальный пример с array2d

person Evgeniy    schedule 04.07.2016
comment
У меня есть серый коврик opencv, а не rgb, как я могу преобразовать его в изображение dlib? - person user924; 23.07.2019
comment
@user924 вместо rgb_pixel используйте unsigned char - person Rika; 17.08.2020