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

Posted

技术标签:

【中文标题】在 DLIB 中将 RGB 图像转换为灰度图像【英文标题】:Convert RGB Image to Grayscale Image in DLIB 【发布时间】:2016-11-05 22:21:39 【问题描述】:

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

灰色图像应该是array2d<unsigned_char>

我从未见过关于该问题的好的 dlib 文档。

【问题讨论】:

【参考方案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

文档是here。有很多有据可查的例子,你应该从它们开始。 Special example about array2d

【讨论】:

我有opencv gray mat 而不是rgb,如何将其转换为dlib 图像? @user924 代替 rgb_pixel 使用 unsigned char

以上是关于在 DLIB 中将 RGB 图像转换为灰度图像的主要内容,如果未能解决你的问题,请参考以下文章

将灰度图像转换为 rgb 图像并在 matlab 中将其替换为 imread()

在 ImageMagick 命令行中将 RGB 转换为灰度

dlib 人脸检测错误:不支持的图像类型,必须是 8 位灰度或 RGB 图像

使用 OpenCV 从 android Camera2 将 YUV 转换为 RGB ImageReader 时出现问题,输出图像为灰度

如何在matlab中将L*a*b*转换为灰度

Python如何将RGB图像转换为Pytho灰度图像?