SLAM数据集序列图片如何批量处理
SLAM数据集序列图片如何批量处理
原创:SLAM爬坑之行
引言:在SLAM学习过程中,有时候需要对大量的数据集比如TUM/KITTI等图片序列进行批量处理,这个时候需要用到opencv中的函数对图像进行批量处理的话,会大大减少我们的时间,提高工作效率。
详细流程:
1、数据集下对大批量图片文件名的导出
我们采用的是TUM实验室中的rgbddatasetfreiburg2pioneerslam的RGB图像序列,每当看见这些密密麻麻的数据图像的时候,就会有一种无力感,所以需要批量处理。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W9k03k7b-1592542839980)(D:\SLAM\SLAM基础\文章\rgbseires.png)]
1、使用ls >命令将目录RGB(根据实际情况进行更改)中的图片名列举出来,然后利用>将文 件名重定向到test.txt中(.txt的名字可根据需要自定义),效果入下图,可以看见rgb中的图像序列已经被保存,终端输入下列指令后结果如下图所示
ls rgb >text.txt
2、利用opencv实现批量图像的处理工作
#include <iostream>
#include<opencv2/opencv.hpp>
#include<iostream>
#include<time.h>
#include<fstream>
#include<string>
int main(){
//! 指定文件夹路径
std::string path = "C:\\Users\\12692\\Source\\Repos\\picture_process\\seires.txt";
std::ifstream file(path);
int img_index = 0;
char img_infile[100], img_savefile[100];
//!函数file.eof(),如果没到文件末尾,返回值为0;当读取两百个图像时,停止读取
while (!file.eof() && img_index < 200) {
//图像名称
char img_name[500];
//getline()读取一行,内容存放在img_name[0],读取的最大字节数为500
file.getline(img_name, 500);
//将字符串img_name标准化打印到img_infile中
sprintf_s(img_infile, "../rgb/%s", img_name);
sprintf_s(img_savefile, "../save/tum%03d.png", img_index);
cv::Mat src = cv::imread(img_infile);
cv::Mat imgGray;
//将彩色图像处理成灰度图
cvtColor(src, imgGray, CV_BGR2GRAY);
img_index++;
//写入序列图片
cv::imwrite(img_savefile, imgGray);
}
}
下图是处理后的图像,这样就可以我们就可以看见原文件rgb中的200张彩色图像被批量处理成灰度图并且重命名。
3、常用举例按规律读取并显示
数据集命名规则如下所示,下列程序将按照序列号名称顺序读取
#include<opencv2/core/core.hpp>
#include<stdio.h>
#include<stdlib.h>
#include<opencv2/imgproc/imgproc.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<iostream>
#include <fstream>
using namespace std;
using namespace cv;
int main() {
//先读取100张图试试看
for(int i = 1 ; i < 100; i++) {
//使用SetFileNames()方法读取序列图像。
Mat srcGray;
char img_name[200];
sprintf(img_name, "../PATH/TUM%03d.jpg", i);//%05d代表文件名的宽度
srcGray = imread(imgname, 0);
cout << i << endl;
imshow("读取", srcGray);
waitKey(122);
}
return 0;
}
4、写入序列图片
char path[200];
sprintf(path, "../save/%d.jpg", i);
Mat edgeMat;
imwrite(path, edgeMat);
SLAM数据集序列图片如何批量处理的更多相关文章
- php base64数据与图片的转换
1.解析base64数据成图片 The problem is that data:image/bmp;base64, is included in the encoded contents. This ...
- PLSQL程序编写杂烦数据表信息编写批量排版
--PLSQL程序编写杂烦数据表信息编写批量排版 SELECT 'cra.' || lower(t.column_name) ||',' FROM dba_tab_columns t WHERE t. ...
- Python3.7 练习题(三) 将指定目录下的图片进行批量尺寸大小处理
# 将指定目录下的图片进行批量尺寸大小处理 #修改图片尺寸 导入Image os 快捷键 alt+enter import os from PIL import Image def process_i ...
- PHP base64数据与图片的互相转换
1.解析base64数据成图片 The problem is that data:image/bmp;base64, is included in the encoded contents. This ...
- C++ 根据图片url 批量 下载图片
最近需要用到根据图片URL批量下载到本地的操作.查找了相关资料,记录在这儿. 1.首先在CSV文件中提取出url ifstream fin("C:\\Users\\lenovo\\Deskt ...
- 使用FormData数据做图片上传: new FormData() canvas实现图片压缩
使用FormData数据做图片上传: new FormData() canvas实现图片压缩 ps: 千万要使用append不要用set 苹果ios有兼容问题导致数据获取不到,需要后台 ...
- ASP.NET MVC中使用Dropzone.js实现图片的批量拖拽上传
说在前面 最近在做一个MVC相册的网站(这里),需要批量上传照片功能,所以就在网上搜相关的插件,偶然机会发现Dropzone.js,试用了一下完全符合我的要求,而且样式挺满意的,于是就在我的项目中使用 ...
- 图片尺寸批量resize的matlab并行代码
在caffe ImageNet例子中有对图片进行resize的部分,文中使用的是linux shell脚本命令: for name in /path/to/imagenet/val/*.JPEG; d ...
- PLSQL_数据泵定参数批量导入多表Expdp/Impdp Parfile(案例)
2015-04-01 Created By BaoXinjian
随机推荐
- 6.Set集合类型操作使用
Set集合类型 (1)介绍 redis的set是string类型的无序集合set元素最大可以包含(2的32次方-1)个元素关于set集合类型除了基本的添加删除操作,其它有用的操作还包含集合的取并集(u ...
- 小谢第2问:后端返回为数组list时候,怎么实现转为tree
要求后端返回给我的list时候,在数组中定义有id , parentid, 可以用双重循环的方法,得到tree需要的数据结构,这样得到的数据就可以直接复制给树组件的data啦const oldData ...
- jQuery-语言基础整理
jQuery是js的一个类库,主要封装的是js中DOM操作部分,使用和原生js一样 1.需要先引入页面才可以使用 代码引入:<script src='jquery.js'></scr ...
- Rocket - tilelink - AtomicAutomata
https://mp.weixin.qq.com/s/O7VTHqpCFNJQi3EpucXkIw 简单介绍AtomicAutomata的实现.(细节问题太多,恕不完全表述.) 1. ...
- Java面向对象 类与对象与方法的储存情况
栈.堆.方法区 类(含方法)储存在方法区 main函数入栈 堆里面存储方法区中类与方法的地址 main函数调用方法,找堆里面方法的地址,再从方法区找到对应函数,函数入栈,用完出栈 总结: 1.类.方法 ...
- Java实现 LeetCode 824 山羊拉丁文(暴力)
824. 山羊拉丁文 给定一个由空格分割单词的句子 S.每个单词只包含大写或小写字母. 我们要将句子转换为 "Goat Latin"(一种类似于 猪拉丁文 - Pig Latin ...
- Java实现蓝桥杯VIP 算法训练 P0501
试题 算法训练 P0501 资源限制 时间限制:1.0s 内存限制:256.0MB 输入两个无符号整数x, y, 用位操作实现无符号整数的乘法运算.不用考虑整数的溢出. 输入: 235 657 输出: ...
- Java实现 蓝桥杯VIP 算法训练 黑白无常
算法训练 黑白无常 时间限制:1.0s 内存限制:256.0MB 问题描述 某寝室的同学们在学术完之后准备玩一个游戏:游戏是这样的,每个人头上都被贴了一张白色或者黑色的纸,现在每个人都会说一句话&qu ...
- 为什么需要云IDE?
一.云 IDE?是新概念吗? 不不不,早在 2010 年就有成熟的产品了:Cloud9 IDE 时至如今,云 IDE 已经相当常见了,比如: Cloud9:亚马逊为其云计算服务提供的 IDE Ecli ...
- java正则匹配 指定内容以外的 内容
今天,遇到一个需要 匹配出 指定内容以外的 内容的需求. 乍一看,需求貌视很简单啊,直接上 非贪婪模式的 双向零宽断言(有的资料上也叫 预搜索.预查.环视lookaround): 比如,我要匹配 串内 ...