标签结合

本文介绍了一个用于整合图片文件路径及其对应标签数据的C++脚本。该脚本读取两个文本文件,一个包含图片路径及边界框信息,另一个包含标签数据,并将这些信息整合到一个输出文件中。此脚本适用于图像处理和计算机视觉项目的数据预处理阶段。

将形式:

samples/000001.jpg 95 71 321 384
samples/000002.jpg 72 94 293 400
samples/000003.jpg 216 59 307 185
samples/000004.jpg 622 257 1186 1038
samples/000005.jpg 236 109 356 275
和标签:

000001.jpg 165 184 244 176 196 249 194 271 266 260
000002.jpg 140 204 220 204 168 254 146 289 226 289
000003.jpg 244 104 264 105 263 121 235 134 251 140
000004.jpg 796 539 984 539 930 687 762 756 915 756
000005.jpg 273 169 328 161 298 172 283 208 323 207

结合成:

samples/000001.jpg 95 71 321 384 165 184 244 176 196 249 194 271 266 260
samples/000002.jpg 72 94 293 400 140 204 220 204 168 254 146 289 226 289
samples/000003.jpg 216 59 307 185 244 104 264 105 263 121 235 134 251 140
samples/000004.jpg 622 257 1186 1038 796 539 984 539 930 687 762 756 915 756
samples/000005.jpg 236 109 356 275 273 169 328 161 298 172 283 208 323 207


代码::

#include<opencv2/opencv.hpp>
#include <iostream>
#include <vector>
#include <fstream>
#include <string>


using namespace cv;
using namespace std;

int main()
{
	ifstream infile1("../label1.txt");
	
	fstream fout("../out.txt", ios::out);
	std::vector<string> imgnames;
	
	std::vector<vector<int>> rois;	
	int box;
	while (infile1)
	{
		string imgname;
		infile1 >> imgname;
		imgnames.push_back(imgname);	
		vector<int>roi;
		for (int i = 0; i < 4; i++)
		{
			infile1 >> box;
			roi.push_back(box);
		}
		rois.push_back(roi);
	}

	string imgname2;
	int key;
	
	std::vector<vector<int>> rois2;
	ifstream infile2("../label2.txt");
	while (infile2>>imgname2)
	{
		vector<int>keys;
		for (int i = 0; i < 10; i++)
		{
			infile2 >> key;
			keys.push_back(key);
		}
		rois2.push_back(keys);
	}
	for (int i = 0; i < rois.size(); i++)
	{
		fout << imgnames[i] << " ";
		for (int m = 0; m < 4; m++)
		{
			fout << rois[i][m] << " ";
		}
		for (int j = 0; j < 10; j++)
		{
			fout << rois2[i][j] << " ";
		}	
		fout << endl;
	}
	fout.close();
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值