图片处理后再保存为图片到文件夹中,文件夹下文件名不变改格式保存

首先读取图片;

然后处理,得到cv:Mat类型;

对cv:Mat类型图片写入文件夹,保存到指定路径。

像raw图等不能直接读取显示,需要先进行解码,转换为可以显示的图片。

下面举例读入本来可以显示的图。以下代码加入对应的头文件和命名空间,放到主函数运行即可。

string readpath="D:\\processimages\\1.jpg";//s输入为jpg格式,可以换成其他格式
string savepath="D:\\processimages\\1.bmp";//保存为bmp格式,可以换成其他格式
Mat src=imread(readpath);
//对输入图像进行处理,假设有一个函数为对图像进行白平衡校正:Mat awbimg(Mat src),可以换成自己的函数
Mat dst=awbimg(src);
//对处理后的图像保存到指定路径,
imwrite(savepath,dst);

以上运行后,可以去到指定路径中查看是否多出处理后的图片。

如果是文件夹下多张图片处理,修改格式,再以同样的文件名保存,如下:

如何读取文件夹下多张图片进行处理可以参考:http://t.csdn.cn/xWyOI

接下来是读取了多张图片进行处理后,得到的多张Mat指定格式保存到指定路径中:

//filesVec为一个string的容器,关于它的定义和读取看上面的参考链接
for(int i = 0; i < filesVec.size(); i++)
{
    //首先读取
    Mat src=imread(filesVec[i]);
    //自行处理图片
    //保存到文件夹中,自定义指定路径和文件名,假设filesVec.size()=3
    string savepath[3] = {"D:\\01.bmp","D:\\02.bmp","D:\\03.bmp"};
	imwrite(savepath[i], src);

    //需要与读取的文件名一样时,文件格式后缀一般是三到四个字符,进行替换即可
    //string.substr()相当于截取或者删除字符,可以搜索它的定义,这里不展开
	string savepath1 = filesVec[i].substr(0, filesVec[i].length() - 4) + ".bmp";
	imwrite(rgbsavepath, src);
}

运行后可到文件夹查看,处理后的Mat图片的属性格式是否和代码中的对应。

Thank you for your reading!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值