c++ 将cv::mat 转为 array2d<rgb_pixel>
时间: 2023-08-08 22:12:31 浏览: 113
C++11 std::shared_ptr总结与使用示例代码详解
你可以使用以下代码将 cv::Mat 转换为 dlib 的 array2d<rgb_pixel> 类型:
```cpp
#include <dlib/image_processing.h>
#include <dlib/image_io.h>
using namespace dlib;
// 将 cv::Mat 转为 array2d<rgb_pixel>
array2d<rgb_pixel> mat_to_array2d(const cv::Mat& img)
{
// 创建一个空的 array2d<rgb_pixel> 对象
array2d<rgb_pixel> out_img(img.rows, img.cols);
// 遍历每一个像素,将其赋值给 array2d<rgb_pixel> 对象
for (int r = 0; r < img.rows; ++r) {
for (int c = 0; c < img.cols; ++c) {
const cv::Vec3b& bgr = img.at<cv::Vec3b>(r, c);
out_img[r][c] = rgb_pixel(bgr[2], bgr[1], bgr[0]);
}
}
return out_img;
}
```
然后你就可以使用以上函数将 cv::Mat 转换为 dlib 的 array2d<rgb_pixel> 类型了。
阅读全文