C++ OpenCV将mat保存至txt文件、读取txt文件至mat

mat保存至txt文件

	写入PLeft48.txt
	fstream PLeft48("PLeft48.txt", ios::out);
	if (!PLeft48.fail())
	{
		cout << "start writing PLeft48.txt" << endl;
		for (int i = 0; i < I.rows; i++)
		{
			for (int j = 0; j < I.cols; j++)
			{
				PLeft48 << int(I.at<uchar>(i, j)) << "\t";
			}
			PLeft48 << std::endl;
		}
		cout << "finish writing PLeft48.txt" << endl;
	}
	else
		cout << "can not open" << endl;
	PLeft48.close();

注意:

  • 文件格式可用txt,也可用xml等
  • 代码第10行,int是用来将uchar转换为整数,不加int的话输出就变成了uchar字符
  • 代码第10行,uchar是灰度图使用的数据类型,其他的应根据mat中数据类型相应更改

读取txt文件至mat

	ifstream fin("I_matlab.txt");
	for (int i = 0; i < gray.rows; i++)
	{
		for (int j = 0; j < gray.cols; j++)
		{
			int a;
			fin >> a;
			gray.at<uchar>(i, j) = a;//
		}
	}

注意:

  • 文件格式可用txt,也可用xml等
  • 代码第6、7、8行不能省略为fin >> gray.at<uchar>(i,j);,这样写的话读进来的数与txt文件的不相同,原因未知
  • 代码第8行,uchar是灰度图使用的数据类型,其他的应根据mat中数据类型相应更改
  • 6
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值