【发布时间】:2014-05-24 16:59:41
【问题描述】:
我正在做一个项目,它需要转换图像格式。首先,我需要将图像从cv::Mat 格式更改为Image<byte> 格式,这是一种黑白框。以下代码展示了如何从cv::Mat 更改为Image<byte>。
void conversionNB(Mat frame, Image<byte> &imBW)
{
Mat clone = frame.clone();
Mat_<Vec3b>& frame_p = (Mat_<Vec3b>&)clone;
for(int i = 0; i < 480; i++)
{
for(int j = 0; j < 640; j++)
{
imBW[i][j] = (frame_p(i,j)[0] + frame_p(i,j)[1] + frame_p(i,j)[2])/3;
}
}
}
然后,在处理完图像后,我需要将图像改回cv::Mat 格式以显示它们。有人知道如何根据代码从Image<byte> 更改为cv::Mat 吗?
附: Image<byte> 是来自 cvd 库的 8 位数据类型。
namespace CVD
{
typedef unsigned char byte;
}
【问题讨论】:
-
Image
不是来自opencv,请解释一下它是什么? -
Image
是来自 cvd 库的 8 位数据类型。 typedef 无符号字符字节 -
this one ?