gpt4 book ai didi

c++ - OpenCV cvtColor 图像被截断

转载 作者:行者123 更新时间:2023-11-28 05:14:43 25 4
gpt4 key购买 nike

我正在使用 cvtColor 将图像从 YUYV 格式转换为 RGB24。就颜色而言,输出很好,但图像的一半被剪切了。图像是 640x480 YUYV 图像缓冲区,没有任何标题。我正在使用以下代码:

 FILE* fd = fopen("imgdump", "r+b");

char buffer[640*480*2]; // Each pixel takes two bytes in YUYV

if (fd != NULL)
{
fread(buffer, sizeof(char), 640*480*2, fd);
fclose(fd);
}

Mat s_sImageMat = Mat(640, 480, CV_8UC2);
Mat s_sConvertedImageMat;

cout << "before conversion\n";
s_sImageMat.data = (uchar*) buffer;
cvtColor(s_sImageMat, s_sConvertedImageMat, CV_YUV2RGB_YUYV);
cout << "after conversion\n";

FILE* fw = fopen("converted", "w+b");

if (fw != NULL)
{
fwrite((char*)s_sConvertedImageMat.data, sizeof(char), 640*480*2, fw);
fclose(fw);
}

Original Converted

原始文件:https://drive.google.com/file/d/0B0YG1rjiNkBUQ0ZuaWN6Y1E2LUU/view?usp=sharing

附加信息:我正在使用 opencv 3.2

最佳答案

问题似乎在以下行中:

fwrite((char*)s_sConvertedImageMat.data, sizeof(char), 640*480*2, fw);

对于 RGB24,它应该是:

fwrite((char*)s_sConvertedImageMat.data, sizeof(char), 640*480*3, fw);

RGB24中每个像素占3个字节

关于c++ - OpenCV cvtColor 图像被截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42894897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com