c++批量读取图片并处理
#include <iostream> #include <string> using namespace std; void main() {string path = "C:/Visual Studio 2019/Projects/VOC2007_makevideo/000001.txt";//1.获取不带路径的文件名string::size_type iPos = path.find_last_of('/') + 1;string filename = path.substr(iPos, path.length() - iPos);cout << filename << endl;//2.获取不带后缀的文件名string name = filename.substr(0, filename.rfind("."));cout << name << endl;//3.获取后缀名string suffix_str = filename.substr(filename.find_last_of('.') + 1);//获取('.')后面的位置到结尾的字符串cout << suffix_str << endl; }
1. s.substr(0,5):获得字符串s中从第0位开始,长度为5的字符串;默认时的长度为从开始位置到尾。
2. find_first_of(): 在字符串中查找第一个出现的字符c;
int find_first_of(char c, int start = 0)
查找字符串中第1个出现的c,由位置start开始。
如果有匹配,则返回匹配位置;否则,返回-1.
默认情况下,start为0,函数搜索整个字符串。
3. find_last_of():在字符串中查找最后一个出现的字符c;
int find_last_of(char c):
查找字符串中最后一个出现的c。有匹配,则返回匹配位置;否则返回-1.
该搜索在字符末尾查找匹配,所以没有提供起始位置。
4. find()正向查找,rfind()反向查找
一、批量读取文件夹下的图片和txt文档并处理
#include <iostream>
#include <sstream>
#include <vector>
#include <string>
#include "ImageProcess.h"
#include <stdio.h>
#include<opencv2/opencv.hpp>
#include<opencv2/imgproc/imgproc.hpp>
void main()
{
std::string imgdir = "C:\\Visual Studio 2019\\Projects\\VOC2007";
//创建一个String类型 名字为image_files的vector
string pattern_img = imgdir + "\\img\\*.jpg";
vector<string> image_files;
cv::glob(pattern_img, image_files);//把pattern_img路径下所有文件名存在image_files中
for (int i = 0; i < image_files.size(); ++i) {
string::size_type iPos = image_files[i].find_last_of('\\') + 1;
string filename = image_files[i].substr(iPos, image_files[i].length() - iPos);
std::cout << filename << std::endl;
//2.获取不带后缀的文件名
string name = filename.substr(0, filename.rfind("."));
std::cout << "无后缀:"<< name << std::endl;
cv::Mat img = cv::imread(image_files[i]);//000053_testimg.png
vector<vector<double>> data;
txt_to_vectordouble(data, imgdir + "\\labels\\" + name + ".txt");
std::cout << "txtdir: " << imgdir + "\\labels\\" + name + ".txt" << std::endl;
CImgProcess w;
w.ImgProcess_second(img, data);
string write_name = imgdir + "\\results\\" + name + ".jpg";
std::cout <<"write_name: " << write_name << std::endl;
cv::imwrite(write_name, img);
}
二、批量保存图片
int k = 1;
char writename[40];
sprintf(writename, "%d%s", k, ".jpg");//sprintf将数据格式化写入字符串writename中
imwrite(writename, colorImage);
三、将文件夹的图片合成视频
/*************************将保存的图片合成为视频**********************************/
string pattern_img = imgdir + "\\results\\*.jpg";
vector<string> image_files;
cv::glob(pattern_img, image_files);//把pattern_img路径下所有文件名存在image_files中
int isColor = 1;
//每秒钟的帧率,即一秒放多少帧图片
int fps = 2;
//获取图片的宽和高
int frameWidth = 640;
int frameHeight = 480;
//声明VideoWriter类,写入视频
cv::VideoWriter writer;
/*cv::VideoWriter::fourcc('M', 'P', '4', 'V')生成MP4格式视频*/
/*cv::VideoWriter::fourcc('M', 'J', 'P', 'G')生成avi格式视频,大小比'X', 'V', 'I', 'D'大*/ /*cv::VideoWriter::fourcc('X', 'V', 'I', 'D')生成avi格式视频*/
writer.open("D:\\test.mp4", writer.fourcc('m', 'p', '4', 'v'), fps, cv::Size(frameWidth, frameHeight));
for (int i = 0; i < image_files.size(); ++i) {
cv::Mat img = cv::imread(image_files[i]);//000053_testimg.png
if (img.empty())
{
break;
}
//cv::imshow("src", img);
//cv::waitKey(30);
//调用writer类,传入图片
writer.write(img);
}
c++批量读取图片并处理相关推荐
- opencv图像处理时使用stringstream批量读取图片,处理后并保存
简介: 同文件输入输出流一样,使用stringstream可以批量读取图片,处理后并进行保存.因为C++中头文件 stringstream既可以从string读数据也可向string写数据,利于其这个 ...
- python批量读取图片并批量保存_Python实现批量读取图片并存入mongodb数据库的方法示例...
本文实例讲述了Python实现批量读取图片并存入mongodb数据库的方法.分享给大家供大家参考,具体如下: 我的图片放在E:\image\中,然后使用python将图片读取然后,显示一张,存入取一张 ...
- python批量读取图片gps位置_某少儿不宜网站图片拍摄位置分析,Python批量读取图片GPS位置!...
原标题:某少儿不宜网站图片拍摄位置分析,Python批量读取图片GPS位置! 1. python读取图片exif属性中的GPS信息 智能手机或平板如果在拍照时开启定位服务,照片中就会记录拍照位置信息和 ...
- Python-OpenCV 从文件夹中批量读取图片
实现从文件夹批量读取图片并将图片裁剪为(128x128大小) import os.path import glob import cv2 def convertjpg(jpgfile,outdir,w ...
- 某少儿不宜网站图片拍摄位置分析,Python批量读取图片GPS位置!
1. python读取图片exif属性中的GPS信息 智能手机或平板如果在拍照时开启定位服务,照片中就会记录拍照位置信息和拍摄时间.如果将原始照片直接发送发布到网上,无意中就泄漏了自己的位置信息,有恶 ...
- python批量读取图片并复制入word_提取出 Word 文档里的图片 并利用 python 批量转换格式...
日常工作中,你是否遇到过这样的场景,领导发来一份 Word 文档,要求你将文档中的图片存储到一个文件夹内,并且还要将图片都改成 .jpg 或者 .png,你会怎么办?你是不是一边内心崩溃,一边开始一张 ...
- python批量读取图片并复制入word_提取word文档中的图片并使用Python进行批量格式转换,出,Word,里,利用,python...
日常工作中,你是否遇到过这样的场景,领导发来一份 Word 文档,要求你将文档中的图片存储到一个文件夹内,并且还要将图片都改成 .jpg 或者 .png,你会怎么办?你是不是一边内心崩溃,一边开始一张 ...
- opencv中批量读取图片并保存
之前一直在写python,突然要用C++,因为涉及到图像处理,需要批量读取并存储图片,这里对图片的批量处理代码做一下汇总: 方法1:比较简单,唯一的要求就是文件夹下的图片名称是有规律的,比如1,2,3 ...
- OpenCV(6):基于本地库的图像识别软件(批量读取图片)
为了识别宠物的种类以及其他的扩展功能,我参考网上的识图软件原理,写了一个简化版的demo:从本地的库中匹配与所选图片最像的图片.(1.具体的其他代码可以参考其他博客的文件:2.所有文件路径改成自己的即 ...
最新文章
- java 之 面试题-银行业务调度
- Java_异常_05_ OutOfMemoryError: Java heap space
- 英特尔收购McAfee的10种结局猜测
- 面试官问:为什么 Java 线程没有 Running 状态?我懵了
- 信息安全工程师笔记-网络安全风险评估技术原理与应用
- 信息学奥赛一本通(1158:求1+2+3+...)
- vue 深度拷贝数组_前端深拷贝和浅拷贝
- tune kubernetes eviction parameter
- 史上最强 Java 学习路线图!
- 万卷书计划-2016年开启
- VRRP的工作原理及运用
- 国企计算机岗位职称申请,在国企工作如何评定职称
- virtualbox突然打不开虚拟机解决方法
- 台式计算机连不上网怎么办,台式电脑插了网卡连不上网怎么办?几个方面介绍及解决方法...
- 蚂蚁花呗的交易分期(有别于账单分期)
- UE4Material_RainEffect(雨的效果)
- 生成和查看dump文件
- git 将本地项目关联到远程仓库
- cj20n sap 报错未知列的名称_sapps操作手册
- 鲎试剂停产,内毒素检测大地震!重组C因子法了解一下
热门文章
- 眼图(Eye Diagram)与数字信号测试
- 丁香花开,又是一年毕业时
- Clannad游戏中日双字幕补丁
- 如何做一个网站?建网站需要什么?
- 低频工业读写器|读卡器|阅读器CK-LR03-A01与FX1N三菱PLC联机应用手册
- 虚拟机VMware Workstation 7.1.4官方原版下载+激活密钥+汉化补丁
- 软硬件运维主要包括哪些个方面 需要注意哪些关键问题,一共八百字
- 什么是 EthereumFair (ETHF/ETF)?
- 中国人民公安大学 网络对抗技术实验报告一
- 解决Windows提示缺少msxml6r.dll文件的问题