gpt4 book ai didi

c++ - Opencv:对于非标准尺寸的图像,imdecode() 失败

转载 作者:太空宇宙 更新时间:2023-11-03 23:15:24 26 4
gpt4 key购买 nike

我遇到了 cv::imdecode() 的一个特性——当我尝试加载非标准尺寸的图像时,我总是得到带有 NULL 缓冲区和 rows = 0 的图像。

例如,这是一个大小为 236x402 的 .jpg:

enter image description here

我的 C++ 代码:

FILE* pf = NULL;
pf = _wfopen(strFileName, L"r");
if (!pf)
{
return false;
}
fread(pFileBuf, 1, nFileSize, pf);
fclose(pf);
cv::Mat matRaw = cv::Mat( 1, nFileSize, CV_8UC1, pFileBuf);
cv::Mat matImage = cv::imdecode(matRaw, CV_LOAD_IMAGE_COLOR);
delete [] pFileBuf;
SIZE size;
size.cx = matImage.cols;
size.cy = matImage.rows;

运行 matImage.rows = 0 和 matImage.data = NULL 后。

但对于 1280x720 的 jpeg 图像,效果很好。

想法?

最佳答案

中的错误

pf = _wfopen(strFileName, L"r");

必须是

pf = _wfopen(strFileName, L"rb");

感谢帮助

关于c++ - Opencv:对于非标准尺寸的图像,imdecode() 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40739067/

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