需要使用c++对图片进行post请求上传,http-body的上传图片格式为File类型。
但是我的图片必须通过openCV读取:
IplImage* pImg1 = cvLoadImage("照片(1).jpg"); 或者
cv::Mat mat = cv::imread("照片(1).jpg");
是IplImage* 或cv::Mat类型的,这样读取的图片是像素值,转化为char* 进行post上传后图片格式不符合File类型,所以怎样能把IplImage* 或cv::Mat类型的图片转化为与HTTP-body对应的File类型(或者二进制数据)进行上传呢?或者有其他的方式,麻烦大家帮忙解决下,谢谢!
(备注:不要将图片保存到本地后读取再上传,这种方式太慢)
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率

已采纳
c++中用openCV的IplImage*或Mat读取图片后如何转化为File文件流(或者二进制数据)的格式
收起
- 写回答
- 好问题 1 提建议
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除 结题
- 收藏 举报
3条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
wuyf 2018-10-16 23:38关注cv::Mat本身存储的是数组,所以最简单的思路是把它当作数组处理。通过cv::Mat.at函数遍历cv::Mat中存的所有数据,需要考虑图像的类型(RGB/Grey等),取出每一个像素点对应的值,然后就可以随便玩了,比如通过转换成json格式,就可以序列化传输和解析了。
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决评论 打赏无用 2举报微信扫一扫
点击复制链接分享
编辑预览轻敲空格完成输入- 显示为
- 卡片
- 标题
- 链接
评论按下Enter换行,Ctrl+Enter发表内容
编辑
预览

轻敲空格完成输入
- 显示为
- 卡片
- 标题
- 链接
报告相同问题?
提交
- 2016-09-02 23:30回答 4 已采纳 从numpy.ndarray (图片)到字节流: ``` x = img.tobytes() ``` 从二进制文件到图片(numpy.ndarray): ``` img = cv2.i
- 2021-11-04 03:48回答 1 已采纳 检查一下medianBlur函数的参数类型,image_Y和image_Z的类型和参数类型不一致。 [转载] OpenCV - cv::Mat IplImage CvA
- 2018-03-06 17:25回答 1 已采纳 https://stackoverflow.com/questions/32264709/convert-the-base64string-or-byte-array-to-matimage-in-c
- 2020-09-17 19:24在这篇文章中,我们了解到如何使用Python编程语言结合OpenCV库来实现图像的二进制格式转换。这个过程对于在机器学习模型训练之前进行数据预处理是十分重要的,尤其是在使用TensorFlow等框架时,模型训练通常需要以二...
- 2021-11-30 08:34回答 2 已采纳 这个是正常的,后面的东西都是一些日志信息,不影响使用。如果想关闭,可以通过如下方法关闭: #include <opencv2/core/utils/logger.hpp> cv::util
- 2023-03-12 07:31回答 3 已采纳 将vector容器中的一系列cv::Mat类型的3*3矩阵保存到本地文件,可以使用OpenCV自带的文件存储类cv::FileStorage,具体步骤如下: 保存到文件: #include <o
- 2021-08-19 07:40回答 3 已采纳 按理说opencv那么成熟,不会出现这样的bug 对比PIL、matplotlib、scipy等库读图像,如果这些没问题,opencv有问题,那你可以去提issue了更换其它opencv版本,图像位置
- 2021-12-16 03:14FLYINGong的博客 1.写入:opencv mat(float型)存为bin std::ofstream fout1("E:/data/flowu_2486x1856.bin", std::ios::binary | std::ios::trunc); Mat flowU = Mat::zeros(2486, 1856, CV_32FC1); for (int i = 0; i < ...
- 2022-03-20 05:22回答 2 已采纳 https://wenku.baidu.com/view/7072518dd0d233d4b14e69ee.html
- 2022-09-26 15:29回答 2 已采纳 python下面的显示问题,不然你在show_img里面输出下图片的长宽看下对不对就知道了
- 2015-10-25 21:46回答 1 已采纳 有几点不明,二进制数据?是内存中的数据吗?还是存在硬盘上的二进制文件? 如果是内存中的数据,使用Opencv的Mat类,一个个的赋值也可以,如果内存中的数据是连续的直接使用Mat的构造函数也可以
- 2017-01-06 06:27借助于Matlab的接口函数,在Visual Studio中使用C++语言读取*.mat文件中的数据(这里主要是2维矩阵(灰度图像)和3维矩阵(彩色图像))到OpenCV中的Mat数据结构中并显示图像,同时实现将灰度图像转化为伪彩色图像...
- 2019-11-13 11:54MagnumLu的博客 一、IplImage* ——> Mat IplImage* ipl = cvLoadImage("xxx.jpg", 0); 第一种:Mat m1(ipl);//使用拷贝构造函数 第二种:Mat m2 = ipl; 第三种:Mat m3 = cv::cvarrToMat(ipl); 二、Mat ——> IplImage*...
- 2020-11-23 22:21weixin_39980360的博客 在学习tensorflow的过程中,有一个问题,tensorflow在训练的过程中读取的是二进制图像数据库文件,而不是图像文件,因此在进行训练、测试之前需要将图像文件转换为二进制格式。下面是我在ubuntu中使用python+OpenCV...
- 2018-03-04 08:30在OpenCV库中,处理图像数据时,有几种不同的数据结构可供选择,包括`Mat`、`CvMat`和`IplImage`。这些数据结构各有特点,适应不同的应用场景和编程需求。在实际开发中,有时需要在它们之间进行转换以实现功能的兼容...
- 没有解决我的问题, 去提问
联系我们(工作时间:8:30-22:00)
400-660-0108kefu@csdn.net在线客服
- 京ICP备19004658号
- 经营性网站备案信息
公安备案号11010502030143
- 营业执照
- 北京互联网违法和不良信息举报中心
- 家长监护
- 中国互联网举报中心
- 网络110报警服务
- Chrome商店下载
- 账号管理规范
- 版权与免责声明
- 版权申诉
- 出版物许可证
- ©1999-2025北京创新乐知网络技术有限公司