gpt4 book ai didi

c++ - 读取通用数据类型文件的函数

转载 作者:行者123 更新时间:2023-11-28 05:18:26 24 4
gpt4 key购买 nike

<分区>

这似乎是一个非常简单的问题,但我一直找不到答案。

我有一个函数可以读取(二进制)文件并将内容提供给 openCV 图像。目前该文件始终是“unsigned char”数据类型,但我想扩展对其他数据类型的支持。最好作为函数的参数。

我对 C++ 不是很有经验,但在谷歌搜索后感觉这像是应该用模板完成的事情,但我真的不确定如何实现它。

cv::Mat ReadImage(const char * filename, int dataTypeSize, int imageWidth)
{
auto read_image = fopen(filename, "rb");

if (read_image == nullptr)
{
printf("Image Not Found\n");
return cv::Mat();
}

fseek(read_image, 0, SEEK_END);
int fileLen = ftell(read_image);
fseek(read_image, 0, SEEK_SET);

auto pre_image = static_cast<unsigned char *>(malloc(fileLen));
auto data = fread(pre_image, 1, fileLen, read_image);

// Printed and verify the values
//printf("File Size %d\n", fileLen);
//printf("Read bytes %zd\n", data);

auto width = imageWidth;
auto height = fileLen / dataTypeSize / imageWidth;

fclose(read_image);

vector<unsigned char> buffer(pre_image, pre_image + data);

auto img = cv::Mat(height, width, CV_64F, pre_image);

//printf("Image rows %d\n", img.rows);
//printf("Image cols %d\n", img.cols);

return img;
}

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