OpenCV的imencode PGM不编码正确的格式(OpenCV imencode pgm do

2019-11-01 17:39发布

我试图编码垫CV_32FC1图像使用Base64,工艺作品把它在互联网上,但OpenCV的格式不正确编码。 例:

vector<unsigned char> buffer;
vector<int> compression_params;
compression_params.push_back(CV_IMWRITE_PXM_BINARY);
compression_params.push_back(0);
cv::imencode(".pgm", desc, buffer, compression_params);
printf("%s", &buffer[0]);

这产生以下输出:

P2
64 15
255
0   0   0   0   1   0   0   0   0   1   0   0   0   0   0   0   1   0   0   0   0   0     0   0   0   0   
etc..

根据压缩参数和第一参数(P2)不应当被编码为二进制格式,它应该是ASCII。 (资源)

这本身是没有问题的,但是当我改变compression_params.push_back(0)compression_params.push_back(1)我得到这样的输出(无图像数据):

P5
64 15
255

我使用iOS上的OpenCV 2.4.4,我怎么能解决这个问题或可替代我怎么能发送垫的好方法,而不会丢失数据?

Answer 1:

不知道你是否已经解决您的问题,但我想通了这个问题,虽然你正在使用iOS的版本,我不熟悉它可能适用于你的情况下也甚至:

如何捕捉OpenCV的图像和PGM格式保存?



文章来源: OpenCV imencode pgm doesn't encode the correct format