目前还没有支持OpenCV的TGA格式。
我知道有一个名为stb_image的头文件库,它允许你读/写TGA图像。但在互联网上使用OpenCV的案例很少。(更多地是看到人们在OpenGL中使用它)
我发现的第二种方法。在这个主题中包含了一个简短的代码(答案):Loading a tga/bmp file in C++/OpenGL
有人使用此代码将TGA文件读取到cv::Mat中,就像下面的代码一样。
Tga tgaImg = Tga("/tmp/test.tga");
Mat img(tgaImg.GetHeight(), tgaImg.GetWidth(), CV_8UC4);
memcpy(img.data, tgaImg.GetPixels().data(), tgaImg.GetHeight() * tgaImg.GetWidth() * 4);但这只是阅读的一部分。我想知道stb_image是否可以像上面的代码一样做同样的事情。我的意思是图像数据结构可能会有所不同。(还没有调查过它们)
我想问一下以前也有过这种经历的人。由于DDS/TGA图像格式在游戏纹理中也很流行,所以肯定有人已经找到了方法。我的意思是在OpenCV代码中读/写TGA格式。
谢谢。
发布于 2020-12-28 20:28:07
要在tga中保存opencv图像,请使用stbi_write_tga。此函数将指向图像数据的指针作为参数,对于cv::Mat类型,该参数为img.data。
https://stackoverflow.com/questions/65471811
复制相似问题