opencv图像处理时使用stringstream批量读取图片,处理后并保存
简介:
同文件输入输出流一样,使用stringstream可以批量读取图片,处理后并进行保存。因为C++中头文件 stringstream既可以从string读数据也可向string写数据,利于其这个特点,我们可以进行批量读取和批量保存工作。
参考程序:
/*批量读取图片,进行均值滤波处理,并保存至指定目录下*/
/*学习使用stringstream进行图片的批量读取与保存*/ using namespace std;
using namespace cv;
int main()
{
string imageFileName;
std::stringstream Strm;
int image_count = ;//图片数量
std::cout << "开始均值滤波处理........" << endl;//便于控制台查看
for (int i = ; i!= image_count;i++)
{
std::cout << "第"<<i+<<"张处理成功"<< endl;//便于控制台查看
string filePath = "/home/ttwang/CameraCalibration/chess";//原图保存路径
Strm<< i+;
Strm>>imageFileName;
filePath+=imageFileName;
filePath+=".bmp";
Mat imageSource = imread(filePath);
Mat newimage = imageSource.clone(); blur(imageSource,newimage,Size(,));//均值滤波处理 Strm.clear();
filePath.clear();
string SaveFilePath = "/home/ttwang/CameraCalibration/blur/p";//处理后的图片保存路径
Strm << i+;
Strm >> imageFileName;
SaveFilePath += imageFileName;
SaveFilePath += "_d.jpg";
imwrite(SaveFilePath,newimage);
}
std::cout << "保存结束" << endl;
return ;
}
运行结果:
(1)终端运行:

(2)保存路径【从下图可以看到,处理后的图片保存到了指定路径】
ps:处理效果就不显示了

opencv图像处理时使用stringstream批量读取图片,处理后并保存的更多相关文章
- opencv图像处理时使用文件输入流ifstream批量读取图片
简介: 在利用opencv进行图像处理时,通常需要批量读取图片,然后做相应的处理,我们可以用C++文件的输入流来进行图片的读取,这要求我们应该事先,将图片图片名生成txt文件,具体请参见之前的博文[u ...
- opencv学习之路(3)、批量读取图片、视频分解、视频合成
一.批量有序读取图片 #include<opencv2/opencv.hpp> using namespace cv; void main() { //批量读取图片(有序) ]; ]; M ...
- opencv批量读取图片
#include<opencv2/opencv.hpp>using namespace cv;using namespace std;int main(){ int num=4;// ...
- opencv用imread( argv[1], 1)读取图片
显示一幅图:主要是运用功能:imread namedWindow imshowimread:从字面意思我们就可以看懂,用来读取图片的:namedWindow:显然,我们也可以看到这是用来命名窗口名称的 ...
- uigetfile的用法(批量读取图片)
matlab编程中有时想调入电脑中的某个文件,现找到了一些关于uigetifile用法~~[filename, pathname] = uigetfile( ... {'*.jpg;*.tif; ...
- halcon批量读取图片
以前这个代码都是自己写,不仅繁琐,而且容易忘记.其实Halcon中提供了相关的方法.记录一下吧,其实很简单. 读取一个文件夹下的所有图片[助手]>[打开新的image acquisition ] ...
- Opencv读取图片像素值并保存为txt文件
#include <opencv2/opencv.hpp>#include<vector>#include <fstream> using namespace st ...
- Java从网络批量读取图片并保存至本网站服务器后再插入文章中
先来看效果: 查看一下系统操作日志 删除
- Fitnesse批量读取变量信息,并保存到用例执行上下文中
Fitnesse变量可以分成两种,一种是自定义变量,另一种是用例执行过程中的临时变量. 在Finesse使用过程中,如果需要定义一些公共的变量,可以统一在一个文件中使用自定义变量的方法,将公共变量全部 ...
随机推荐
- 【wepy实战】wepy搭建完整项目
使用小程序框架wepy,搭建完整实战项目.文章将从项目结构.配置.模块等进行逐步分析和学习. 文章适合小程序开发新手以及有经验的小程序developer,不喜勿喷,不吝赐教! 本文为作者原创,转发请标 ...
- php引用使用不恰当而产生问题的地方
php变量的引用,如果使用的恰当,会带来效率的提升,相反,效率下降 $array = range(, ); $ref =& $array; var_dump(count($array)); / ...
- docker私服registry管理镜像
前言 首先试想这样一个场景:当在自己的机器上(docker中)构建了mysql镜像,eureka镜像等等微服务镜像,这些镜像有可能需要放到其他的机器上docker环境中去运行,实行分布式架构部署.但如 ...
- pymysql模块使用
一.写函数的原因 写这个函数的原因就是为了能够不每次在用Python用数据库的时候还要在写一遍 做个通用函数做保留,也给大家做个小小的分享,函数不是最好的,希望有更好的代码的朋友能提出 互相学习 二 ...
- MySQl中的\g和\G
1. \g 在MySQL的sql语句后加上\g,效果等同于加上定界符,一般默认的定界符是分号; 2. \G 在MySQL的sql语句后加上\G,表示将查询结果进行按列打印,可以使每个字段打印到单独的行 ...
- puppet的使用:安装puppet
最近项目要使用puppet,趁机赶紧学习下. 在家里的机器中搭建puppet环境,使用两台ubuntu 14.04: 准备工作 时间同步 两台设备先进行时间同步,我把要安装master的机器作为NTP ...
- Disconf 学习系列之Disconf 的主要目标
不多说,直接上干货! 部署极其简单:同一个上线包,无须改动配置,即可在 多个环境中(RD/QA/PRODUCTION) 上线: 部署动态化:更改配置,无需重新打包或重启,即可 实时生效: 统一管理:提 ...
- 关于Class的invokeDynamic指令
(1)java7之Special Methods (2)invokedynamic指令 https://www.cnblogs.com/wade-luffy/p/6058087.html public ...
- PL/SQL程序设计
1 PL/SQL简介 1 什么是PL/SQL? PL/SQL是 Procedure Language & Structured Query Language 的缩写.PL/SQL是对SQL语言 ...
- springboot-17-springboot的文件上传和下载
单文件上传 1, 需要使用thymeleaf模板: http://www.cnblogs.com/wenbronk/p/6565834.html src/main/resource/template ...