OpenCV imencode pgm 不能编码正确的格式
OpenCV imencode pgm doesn't encode the correct format
我正试图编码Mat 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,我怎么能解决这个问题,或者我怎么能在不丢失数据的情况下发送一个好的方式?
不知道你是否已经解决了你的问题,但我发现了这个问题,它可能也适用于你的情况,即使你使用的是iOS版本,我不熟悉:
如何在OpenCV中捕获图像并以pgm格式保存?
相关文章:
- 如何确定我已使用非编码文件到达 EOF?
- 如何在openssl-ecc中获取十六进制格式的私钥
- 将"打开的CV图像"中的"颜色"转换为整数格式
- TDateTime格式在C++Builder中不会更改
- 如何防止clang格式在流运算符调用之间添加换行符<<
- 使用 MATLAB 编码器生成C++代码:编译错误"undefined reference to `rgb2gray_tbb_real64'"
- 检查不带转换的扫描格式
- 当我尝试使用 sstream 和分面将 Boost Time_duration转换为字符串时,我没有得到所需的格式
- 是否可以从格式字符串中检索"width"
- clang格式:宏的缩进
- *新的编码器*格式和运算符
- 如何以 if else 或切换大小写格式对自动和编码?
- 为什么我在有关文件编码格式的QT代码中获得了混乱的代码
- 如何在C++中将文件编码格式设置为UTF8
- UTF 8 以 XML 格式编码的日语字符串
- LZW 编码和 GIF 文件格式
- 如果可以用IEEE 754中的二进制格式表示,那么硬编码浮点精确吗
- 获取url参数值以某种格式编码
- 我怎么能得到QT主函数argv参数作为unicode编码格式
- OpenCV imencode pgm 不能编码正确的格式