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

4

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

这个灰度图像应该是 array2d<unsigned_char> 类型的。

我从来没有看到关于这个问题的好的 dlib 文档。

1个回答

11
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的特殊示例


我有一个OpenCV的灰度矩阵,而不是RGB矩阵,我该如何将其转换为dlib图像? - user924
请使用 unsigned char 替代 rgb_pixel,@user924。 - Hossein

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接