作者:翟天保Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处

场景需求

在用C++编程时,往往会有保存数据的需求,比如我做图像处理的工作,经常会想将图片的像素数据保存至Excel中,然后用matlab进行分析或者用于其他方面。

为了解决该需求,本文将为大家提供一个保存数据至EXCEL的函数。我以保存一幅图像数据为例,大家可以根据自己需求进行微调。

功能函数代码

void WritePicToExcel(string name, cv::Mat pic)
{// 我这里写了断言,可以根据需要自己调整CV_Assert(pic.type() == CV_32FC1);ofstream outfile(name);int row = pic.rows;int col = pic.cols;for (int i = 0; i < row; i++){// 采用指针读取Mat矩阵的方式提速float *p = pic.ptr<float>(i);for (int j = 0; j < col; j++){// 若需要保存的数据是非nan值,则正常保存;若为nan值,则保存字符“nan”if (p[j] == p[j]){outfile << p[j] << (j == (col - 1) ? '\n' : '\t');}else {outfile << "nan" << (j == (col - 1) ? '\n' : '\t');}}}outfile.close();
}

C++测试代码

#include<iostream>
#include<fstream>
#include<opencv2/opencv.hpp>
using namespace std;
void WritePicToExcel(string name, cv::Mat pic);
int main()
{cv::Mat pic = cv::Mat::zeros(1000, 1000, CV_32FC1);for (int i = 0; i < pic.rows; i++){for (int j = 0; j < pic.cols; j++){pic.at<float>(i, j) = rand() % 255;}}// 人为设置一个nan值检验是否可以有效保存pic.at<float>(1, 2) = nan("");// 输入的string为保存的文件名,函数其实还可以加点文件格式的判断,有兴趣的自己改进下吧WritePicToExcel("test1.xls", pic);return 0;
}
void WritePicToExcel(string name, cv::Mat pic)
{CV_Assert(pic.type() == CV_32FC1);ofstream outfile(name);int row = pic.rows;int col = pic.cols;for (int i = 0; i < row; i++){float *p = pic.ptr<float>(i);for (int j = 0; j < col; j++){if (p[j] == p[j]){outfile << p[j] << (j == (col - 1) ? '\n' : '\t');}else {outfile << "nan" << (j == (col - 1) ? '\n' : '\t');}}}outfile.close();
}

测试效果

图1 随机生成的图像矩阵

图2 保存效果图

如上图所示,为了方便,我随机生成了一个1000*1000的图像矩阵,并定义了第二行第三列的点为nan值,保存效果如图2所示,成功!

如果函数有什么可以改进完善的地方,非常欢迎大家指出,一同进步何乐而不为呢~

如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!

C++-保存数据至EXCEL相关推荐

  1. python 保存数据为excel

    python 保存数据为excel import os # 获取当前工作路路径 import pandas as pd import numpy as npdataset = input(" ...

  2. 【6】爬虫介绍/准备工作/构建流程/获取数据/BeautifulSoup/Re(正则表达式)/正则提取/标签解析/保存数据到excel

    爬虫介绍/准备工作/构建流程/获取数据/BeautifulSoup/Re(正则表达式)/正则提取/标签解析/保存数据到excel 更新时间:2021.9.16 vedio:15,16,17,18,19 ...

  3. pandas 保存数据到excel,csv

    pandas 保存数据比较简单: writer = pd.ExcelWriter('文件保存路径') #columns参数的顺序就是excel的列顺序 #df为需要保存的DataFrame df.to ...

  4. labview自动保存报表_Labview如何快速保存数据到Excel

    Labview图形化编程语言对入门用户非常友好,能够快速部署并实现你想要的功能. 今天给大家介绍一个关于文件I/O接口的vi,名字叫做写入带分隔符的电子表格. 顾名思义,就是把Labview采集到的数 ...

  5. halcon 将数据保存到excel_halcon保存数据到excel表格-怎样把图像里面的数据提取到excel表格里面去?...

    mt4如何将自定义数据保存到excel表格 这种方式嵌入的,目的就是让你没有办法简单复制粘贴.即使通过OCR之类的软件,由于存在底色.水印等,错误率也相当高,意义不是很大. 怎样把图像里面的数据提取到 ...

  6. labview自动保存报表_Labview快速保存数据到Excel

    Labview图形化编程语言对入门用户非常友好,能够快速部署并实现你想要的功能. 今天给大家介绍一个关于文件I/O接口的vi,名字叫做写入带分隔符的电子表格. 顾名思义,就是把Labview采集到的数 ...

  7. halcon 将数据保存到excel_Python保存数据到Excel文件的多个sheet

    SEO高手是如何分析竞争对手的一文中的方法,除了可以用于分析竞争对手,还可以每天监控竞争对手的数据动向. 如果想提取出主要竞争对手的排名情况,即排在首页的关键词,对应的着陆页和排名,并将结果保存在Ex ...

  8. 用Python做“电费计算.exe”,并保存数据到Excel

    最近在外面租房准备考研,但是租房还得关系房租水电,一直手动算着好麻烦,就花几个小时做了一个计算电费的模型,现在只能依据每个用户的用电量和总电费计算每个人的电费并且显示出来. 记录了一下主要内容 : 1 ...

  9. Python保存数据到Excel文件

    目录 1.xlwt安装 2.使用方法 1.xlwt安装 pip install xlwt 2.使用方法 import xlwt# 创建一个Excel文件 file = xlwt.Workbook() ...

最新文章

  1. Phpcms与ucenter整合系统设置
  2. spring对JDBC的支持
  3. 数据结构算法的一些归纳
  4. 如何在webservice中取得sesssionid
  5. 第一台定制商用NAS存储服务器
  6. 程序员不可能实现的6个愿望
  7. 内存的工作原里(二)
  8. Spring @PropertySource
  9. iOS动画 三维透视投影 m34
  10. Stanford CS230深度学习(六)目标检测、人脸识别和神经风格迁移
  11. 你还精通MySQL,竟然连bin log、redo log都不知道!
  12. [转载] 百家讲坛——郦波评说曾国藩家训 上部(一)谁来拯救笨小孩
  13. 《学会呼吸》书中的精髓:如何通过训练自己的呼吸,逐步改善健康问题?
  14. 你了解Android中的Activity吗?
  15. 1bit和1byte_Bit和Byte的区别及单位换算
  16. ASBR上配置外部OSPF路由汇总
  17. Fortran 求矩阵的逆、行列式的值
  18. 教资照片上传显示内部服务器错误,教师资格证笔试报名时,网站问题如何解决?...
  19. QPushButton去掉选中状态的虚线框(焦点框)
  20. python 交通_Python可视化交通拥堵情况

热门文章

  1. 【深度学习模型】智云视图中文车牌识别源码解析(二)
  2. python调用(百度云、腾讯云)API接口表格识别并保存为excel
  3. 用ai(Adobe illustrator)临摹的一张作品
  4. Python-二分查找算法bisect模块
  5. 【AI Code】CodeGeex:你的免费AI编程助手——基于清华ChatGLM的130亿参数预训练大模型
  6. Qt 实现软件自动更新
  7. python 字符串常用方法
  8. oracle中raise是什么意思,Oracle中RAISE异常深入分析
  9. 查询是否是会员的c语言小程序,会员小程序
  10. vue 微信支付