OpenCV4中TGA格式加载的任何解决方案
Any solution for TGA format loading in OpenCV4
OpenCV 目前不支持 TGA 格式。
而且我知道有一个名为 stb_image 的头文件库允许您 read/write 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图像格式在游戏纹理中也很流行,所以一定有人已经找到了方法。我的意思是 read/write OpenCV 代码中的 TGA 格式。
谢谢。
要在 tga 中保存 opencv 图像,请使用 stbi_write_tga。此函数将指向图像数据的指针作为参数,在 cv::Mat 类型的情况下为 img.data。
OpenCV 目前不支持 TGA 格式。
而且我知道有一个名为 stb_image 的头文件库允许您 read/write 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图像格式在游戏纹理中也很流行,所以一定有人已经找到了方法。我的意思是 read/write OpenCV 代码中的 TGA 格式。
谢谢。
要在 tga 中保存 opencv 图像,请使用 stbi_write_tga。此函数将指向图像数据的指针作为参数,在 cv::Mat 类型的情况下为 img.data。