图像处理-以最快的方式跳到文件中的位置(C/C++)
image processing - Fastest way to skip to position in file (C/C++)
我有一些二进制格式的6k张图片(uint8(,我一次处理30行左右的图片块。这意味着我最终不得不跳过文件的大部分内容,直到到达我需要的位置。到目前为止,最快的方法似乎是将不必要的部分读取到临时变量中,然后删除该变量,但从逻辑上讲,这似乎不是最有效的方法。
ifstream img;
int startingPixel = N;
for(int frame=0;frame<numFrames;frame++){
img.open("myfileAsFunctionOfFrame.bin",ios::in | ios::binary);
img.read((char*) &tempArray[0], startingPixel*sizeof(uint8));
img.read((char*) &myArray[frame*pixelsToRead], pixelsToRead*sizeof(uint8));
img.close();
}
delete [] tempArray;
我试着使用img.ignore((,但速度变慢了。
有什么建议吗?
使用seekg方法。它正是为你想要做的事情而制作的。http://www.cplusplus.com/reference/iostream/istream/seekg/
希望它能帮助
对于ifstream
,您希望使用seekg()
。
http://www.cplusplus.com/reference/iostream/istream/seekg/
对于ifstream,您可以使用seekg方法
文件:http://cplusplus.com/reference/iostream/istream/seekg/
img.seekg( 0, std::ios_base::cur ); // replace 0 with desired offset
相关文章:
- 将值指定给向量(2D)的向量中的某个位置
- 使用Unreal C++获取VR耳机的世界位置/方向
- 写入位置0x0000000C时发生访问冲突
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- GL_SHADERSTORAGE_BUFFER位置是否与其他着色器位置冲突
- 如何使用cudaMallocManaged在指针位置初始化对象?(C++)
- 无法获取webot::PositionSensor对象中位置传感器的值
- 非常量变量只读位置的赋值
- 如何定义更改car类中car位置的方法
- 使用迭代器时如何访问对象在向量中的位置?
- 更改.cpp程序的输入文件中数据的位置会意外更改输出
- 求最大元素位置的分治算法
- 你好。。。id_public变量不应该给出结果为 81 和 86 吗?为什么它为两个派生类占用不同的内存位置?
- 为什么我的点没有在 OpenGL 中绘制鼠标所在的位置?
- 如何将元素添加到向量的字符串位置
- 如何选择在 csv 文件中输出的位置
- 无法打开 fstream C++文件,即使它与 .cpp 位于同一位置
- 如何在特定位置追加 json 文件
- 我的目标是编写一个程序来计算和存储字符串在字符数组中出现的位置
- OpenGL - 在 NDC 中计算位置适用于着色器,但不适用于'regular'程序