一个灰度图像转RGB图像函数的形参怎么理解void Convert( void *pDest, /// Pointer to a buffer the imag
一个灰度图像转RGB图像函数的形参怎么理解
void Convert( void *pDest, ///< Pointer to a buffer the image data will be written to, OUT
///< Output format is unsigned char*
unsigned int sizeDest, ///< size of destination buffer in bytes!
const void *pSrcRaw, ///< Pointer to the pixel data to be converted, IN
unsigned int sizeRaw, ///< size of src buffer in bytes!
const struct SImageFormat &imageFormat, ///< Image format of the input and output image, IN
const struct SOutputImageFormat &OutputImageFormat ///< Image format of the output image, IN
) const;
最近在做灰度图像转RGB图像的转换,这个函数是相机厂家提供的库里的,第一个和第三个参数比较好理解,第二和第四个关于图片的buffer的大小我实在是理解不到位啊,目前我理解的是sizeDest是RGB图像的大小,是不是就是xsize×ysize×3啊,sizeRaw就是xsize×ysize。不知道对不对。
关于后两个参数的理解
struct SOutputImageFormat
{
public:
int LinePitch; ///< Stride of destination buffer (in Bytes!!), IN
enum PixelType PixelFormat; ///< Format of the Pixel in Outputbuffer, IN
....
}
LinePitch怎么理解?看了很多关于bmp属性的设置文章,还是理解不了。
在线等,请教各位大神。
[解决办法]sizeDest是RGB图像的大小,是每行字节数*行数,这里的每行字节数不一定是xsize×3,而是LineBytes=(xsize*8+31)/32*4,每行字节数一定是4的整数倍
输入输出图像格式应该有说明吧,比如每行多少字节数,每一像素有占几个字节。