OpenCV对csv文件的读写操作

opencv学习笔记4:从csv中读取数据,并显示成图片 代码如下(示例): #include <opencv2/opencv.hpp> #include <iostream> #include <fstream> #include <iomanip> #include <string> using namespace cv; using namespace std; Mat read_csv(const char *filepath, Size img_size, int img_type = C 阅读详情

在用opencv进行图片操作时,经常涉及到对矩阵的操作。由于本人常需要把矩阵进行本地保存和读取,如果直接用文件操作会比较麻烦,本文总结了以下对csv文件进行读写的操作。

1.读取CVS文件

opencv中的CvMLData可以实现对csv文件的读取,注意CvMLData包含在ml.h头文件中,所以需要添加#include “ml.h”采用使用。 CvMLData类的官方API介绍如下链接
http://docs.opencv.org/2.4/modules/ml/doc/mldata.html?highlight=cvmldata#cvmldata-read-csv
使用示例:

CvMLData mlData;
mlData.read_csv("test.csv");//读取csv文件
cv::Mat data= cv::Mat(mlData.get_values(),true);

通过以上三行代码就可以把cvs文件中的矩阵读取到data矩阵中。注意,最后一行代码用cv::Mat()就行转换是因为CvMLData::get_values()返回的是CvMat类型的矩阵。

2.保存cv::Mat矩阵为csv文件

opencv可以通过CvMLData来读取csv文件,但是遗憾的是opencv不能直接把Mat矩阵存储为csv文件。鉴于此本人自己写了一个保存Mat矩阵为csv文件的函数。代码如下

void saveMat(cv::Mat inputMat,char* filename)
{
    FILE* fpt = fopen(filename,"w");
    int rows = inputMat.rows;
    int clos = inputMat.cols;
    for (int i = 0; i < rows;i++)
    {
        for(int j = 0;j<clos;j++)
        {
            if (j < clos-1)
                fprintf(fpt,"%f,",inputMat.at<float>(i,j));
            else
                fprintf(fpt,"%f\n",inputMat.at<float>(i,j));
        }
    }
    fclose(fpt);

}

该函数有两个参数,一个是将保存的Mat矩阵,一个是保存的文件名。如要保存上面的data矩阵为data.csv文件,则可以使用saveMat(data,”data.csv”)。

通过以上两种方式就可以轻松对opencv中的Mat矩阵进行读取和保存了。

OpenCV保存成XML(FileStorage)和CSV(重载<<运算符)文件 XML文件(使用FileStorage类)使用OpenCV时不仅要保存影像结果,往往也需要保存中间的矩阵结果,而OpenCV的imwrite函数只支持CV8U类型的数据(使用OpenCV保存其他类型Mat的时候,程序不会报错,但是无法生成结果文件),因此会给工作带来很多不便。OpenCV在2.0以后的版本中提供了FileStorage类,供用户直接使用,保存为XML/YAML文件。保存XML保存示例 阅读详情

相关推荐

批量读取图片保存为csv文件

工具 采取QT5.6.1+opencv2.4.9 本文以实现将手写数字图片转化为csv文件列子 实现思路: -1.将手写数字以分类在不同文件夹中(0-9)如下图所示: -2.将所有图片的路径加载到txt文件中,cmd实现方式是,输入dir /b/s *.png > image.txt;生成的txt文件如下图: -3.创立QFile csvFile(FILE_PATH),FILE_PATH为最

阿咩爱编程 1万+

OpenCV下的CSV文件读、写

本文结合OpenCV的CSV风格格式化输出与流缓冲重定向,比较巧妙地实现了“将Mat 矩阵数据存储到CSV文件”功能;同时我自己写了read_csv函数,实现了从CSV文件读取数据到Mat矩阵中的功能。

Solomon1558的专栏 1万+

【OpenCV】读取csv文件

csv简介 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都...

郭老二 2920

opencv读写CSV文件

首先我的CSV文件是这样的: //************************************ // Method: ReadCsv // FullName: CFaceRecognition::ReadCsv // Access: protected // Returns: void // Qualifier: // Parameter: con...

博客 2304

Opencv学习笔记 - 使用opencvsharp和决策树进行训练和预测

一、决策树 决策树是最早的机器学习算法之一,起源于对人类某些决策过程的模仿,属于监督学习算法。决策树的优点是易于理解,有些决策树既可以做分类,也可以做回归。在排名前十的数据挖掘算法中有两种是决策树[1]。决策树有许多不同版本,典型版本是最早出现的ID3算法,以及对其改进后形成的C4.5算法,这两种算法可用于分类。对ID3算法改进的另一个分支为“分类和回归树”(Classification AndRegression Trees,CART)算法,可用于分类或回归。CART算法为随机森林和B...

学以致用 知行合一 2593

Python文件处理

本文介绍了Python处理多种文件类型的常用方法:1)文本文件处理包括读取(全部/逐行/多行)和写入操作;2)表格处理使用Pandas进行CSV/Excel文件读取、数据分析、定位筛选及格式转换;3)图像处理通过OpenCV实现图片读取、缩放、旋转和保存;4)视频处理包括视频帧读取、保存及编辑;5)Pickle模块用于Python对象的序列化存储和恢复。文章提供了各类文件处理的具体代码示例,涵盖了从基础操作到进阶应用的完整流程,适合Python开发者快速掌握文件处理的核心技能。

david1358的博客 76

python中各种文件类型的读写

本文汇总了在python中各种类型文件的读取和写入,包含文本、图像、表格、log文件、pickle文件、npy文件、npz文件等。 文本类型:txt文件 图像类型:使用skimage、PIL、opencv、imageio/scipy、plt库 表格类型:xlsx文件、csv文件 其他类型:log文件、pickle文件、npy文件、npz文件 文本类型 txt文件 text_name = 'test.txt' # 文件写入 lines = ['aaa\n', 'bbb\n', 'ccc...

huitailangyz的博客 3104

Opencv2中csv文件操作CvMLData在SVM支持向量机中的应用

Opencv2中csv文件操作CvMLData在SVM支持向量机中的应用。利用CvMLData从"特征记录.csv"中读取数据,然后,进行预测。

Java 读写csv

本文结构: 废话 动手读csv 写csv 工作中需要读写csv,由于csv 文件较大,数据比较多,所以需要选择一个速度快的csv 读取插件。经过比较选择opencsv 。官方解释:Opencsv是一个易于使用的CSV(逗号分隔值)解析器库。之所以开发它,是因为当时所有CSV解析器都没有商业友好的许可证。Java 7是目前支持的最小版本。 Opencsv支持您可能想要做的所有基本CSV类型的事情...

哎幽的成长 5707

MQL5教程 01 MT5有关EA的操作、MetaEditor 工具栏主要功能

MQL5教程 01 MT5有关EA的操作、MetaEditor 工具栏主要功能

weixin_42830015的博客 3988

MATLAB小白也能搞定!BCT脑网络分析工具箱安装与入门指南

本文为零基础用户提供了一份详尽的BCT脑网络分析工具箱安装与入门指南。从MATLAB环境配置、BCT工具箱下载与路径添加,到连接矩阵构建、节点度与聚类系数等基础指标计算,手把手带领神经科学研究者跨越编程门槛,快速掌握脑影像数据分析的核心流程。

threejs5artist的博客 1092

JAVA读写csv文件

项目中遇到读写CSV的功能,在这里简单的总结一下。 要求是从数据库里面去的数据,写到CSV文件里。 注意的几点:CSV里面的数据使用“,”分割。每个数据用双引号括起来。 使用的第三方jar包 opencsv-2.3.jar里面的CSVWriter 类。 使用它参数最全的构造方法,下面是源代码。 1:Writer对象; 2:c:分割符“,”;3:每个数据引号双引号; 4:转译字符; 5:换...

weixin_30639719的博客 166

VLA、世界模型与端到端在智驾中的本质关系与工程落地

世界模型并非3D重建,而是对环境状态转移函数的可微分建模;VLA不是视觉+语言+动作的简单拼接,核心在于跨模态语义对齐。二者共同支撑具身智能系统实现从感知到行动的闭环推演,其技术价值体现在长尾场景泛化能力提升与决策延迟降低。在自动驾驶领域,真实量产方案均采用VLA架构作为多模态感知基础,嵌入轻量级世界模型以支持反事实轨迹推演,并通过WA硬件封装保障实时性,最终由端到端控制层完成像素到扭矩的语义贯通。这种混合架构已成L2+/L3智驾系统的工程共识。

weixin_34163553的博客 365

openCsv读取csv文件

https://blog.youkuaiyun.com/cat_book_milk/article/details/52953786 Java读取csv文件 https://blog.youkuaiyun.com/galen2016/article/details/78119658 https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=020033...

u013452335的博客 3907

MT6771 Android13 背光曲线调试与光感数据校准实战

本文详细介绍了MT6771平台在Android 13系统上进行背光曲线调试与光感数据校准的实战经验。针对高亮度环境下背光误调节问题,深入分析了光感数据上报机制,并提供了驱动层配置修改、背光曲线优化及常见问题解决方案,帮助开发者快速定位并解决类似问题。

moon9的博客 287

FDTD超表面仿真详细教程,几何相位,共振相位,传播相位

FDTD的超表面主要几何相位型(PB型)和共振型两种类型,其中PB型每个cell中的纳米棒的长宽相同,旋转角度不同,共振型长宽不同,旋转角度相同。本博文中以最常见的长方形纳米棒为例,用FDTD演示两种超表面实现的聚焦透镜的功能,包含详细步骤,其他形状,材料的超表面可自行尝试。

wuyuerhhg的博客 3万+

保存OpenCV 矩阵到csv文件

很多时候我们想把OpenCV的Mat矩阵保存到本地文件,但是OpenCV没有提供现成的接口,需要我们自己实现,现在把这个保存函数记录下来,既是方便我以后查看,又是分享给需要的人。 void writeCSV(std::string filename, cv::Mat m) { std::ofstream myfile; myfile.open(filename.c_str()); myfile<< cv::format(m, cv::Formatter::FMT...

baidu_36639782的博客 1456

保姆级教程:用GROMACS 2022.4的拉伸模拟(SMD)加速蛋白-蛋白组装过程

本文详细介绍了如何使用GROMACS 2022.4的拉伸分子动力学模拟(SMD)技术加速大蛋白组装过程。通过CHARMM36力场和SMD技术,将传统需要数月的蛋白结合过程缩短至数天,大幅提升模拟效率。文章包含参数设计、索引组创建、周期性边界处理等实战技巧,并提供了完整的GPU加速工作流和常见问题解决方案。

weixin_30338481的博客 446

【Opencv综合应用】自制训练集的人脸识别3——用csv文件生成xml文件

【Opencv综合应用】自制训练集的人脸识别3——用csv文件生成xml文件说明一,环境准备二,主要步骤三,全部代码四,结果 在上一篇文章【Opencv综合应用】自制训练集的人脸识别2——制作csv文件中我们已经生成了csv文件,现在将使用VS2017来把csv文件制作成xml的训练集文件了 说明 本文参考自https://www.cnblogs.com/fpzs/p/10550305.html ...

Safaearth的博客 2516

python+playwright 学习-10.pytest-playwright插件编写测试用例

pytest-playwright插件完美的继承了pytest 用例框架和playwright基础使用的封装,基本能满足工作中的常规需求了,不需要我们再做额外的插件开发。

qq_27371025的博客 2519

1 初识智能化测试

非常感谢您可以和我一起来聊一聊智能化测试的一些事。智能化测试是一个新鲜又老旧的问题,说新鲜是因为很多人当听到智能化测试都会联想到人工智能、机器学习、深度学习等高大上的技术,很多时候觉得离我们的实际工作还很远;说老旧,是因为智能化测试的一些技术的发展在行业里面已经很久了,例如符号执行、静态分析等技术已经有很长的历史了。近些年,随着测试技术的的飞速发展,智能化测试也有了越来越多的实践,优秀的开源项目慢慢的被行业推行并且落地。那么在这里我们就一起来聊聊智能化测试以及智能化测试好的思路、实践、方法以及技术落地过程。

Criss@陈磊 2626

python读取图片并储存为CSV文件

读取图片的标签并储存到CSV文件,代码如下: import os import csv def create_csv(dirname): path='./chongqing1_round1_testA_20191223/'+dirname+'/' name=os.listdir(path) with open (dirname+'.csv','w') as csvfi...

Wenrui Xie的博客 8893

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

OpenCV 读取 CSV 数据文件

简介CSV格式的文件可以用来保存在存储数据。此文提供一段代码用于读取CSV文件数据到Mat中。注意,在实际应用中,应该事先知道CSV存储的单个数据的类型。所以在读取到Mat之后,要转换成自己了解实际使用的数据。代码#include <string> using namespace std;#include <opencv2/opencv.hpp> using namespace cv;int rea

Expressing Youself Using Code 4682

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

2、OpenCV图像的读写操作

OpenCV图像的读写操作

m0_53328738的博客 1829

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Opencv3.2 读取CSV文件

最近老师让那个做红外区域检测,之前师兄一直都是用的MATLAB做的。由于对MATLAB不是很熟悉,所以采用opencv来做,但是这一开头就遇到了问题。红外摄像机采集到的图片经过软件转为了.csv文件。opencv在3.0版本之前,读取csv文件挺容易的,直接可以调用readcsv函数就行。3.0版本之后opencv做了很多修改,比如讲不稳定的一些函数都删除了,或者是将一些函数整合到了新的头文件中。

fmbao的博客 5647

python OpenCV csv

python相关学习资料:https://edu.51cto.com/video/4102.htmlhttps://edu.51cto.com/video/4645.htmlhttps://edu.51cto.com/video/3502.htmlPython、OpenCV和CSV:图像处理与数据管理的完美结合 在当...

weixin_36887097的博客 81
上一篇: 与运动相关的数据集
下一篇: 在MFC中显示opencv图像
IT修道者
IT修道者 领域专家: 人工智能技术领域 领域专家: 人工智能技术领域
博客等级 码龄17年 326粉丝 95原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值