opencv2.x/3.x/4.x连续保持多张图像到指定文件夹(C++,python)

24 篇文章 1 订阅
该文展示了如何使用Python和C++的OpenCV库读取一系列按数字顺序命名的图片,如1.jpg、2.jpg等。在Python中,代码遍历指定目录下的子文件夹,读取图片并显示,然后保存到新的路径。C++版本则读取指定路径的图片,将其转换为灰度图后保存。
摘要由CSDN通过智能技术生成

opencv的命名方法数字 连续增加 例如1.jpg 、2.jpg ...

Img_Name = "./eds/copyimages/" + str(i)+ ".jpg"

opencv 保持函数

cv2.imwrite(Img_Name,img) #python
cv::imwrite(Img_Name,img) //C++

完整代码,根据自己的需要自行修改,这是python版的

import os
import cv2
# 打开文件
path = "./eds/images"
dirs = os.listdir(path)
print(dirs)  # 输出所有子文件和文件夹
 
 
for file in dirs:
    pic_dir = os.path.join(path, file)  # images中子文件夹的路径
    for i in os.listdir(pic_dir):
        image_dir = os.path.join(pic_dir, i)  # images中每个子文件夹中图片的路径
        img = cv2.imread(image_dir)
       
        print(image_dir)  # 输出图片的路径
        print(img)  # 输出图片
 
        # 读取
        img = cv2.imread(image_dir)
        # 显示
        cv2.imshow('window_title', img)
        cv2.waitKey(0)
        cv2.destroyAllWindows()
        # 保存
        Img_Name = "./eds/copyimages/" + str(i)
        cv2.imwrite(Img_Name  , img)

C++版

#include<opencv2/opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main()
{

    char fileName[50]; //读取图片的路径
    char fileName1[50];//保存图片的路径
    Mat src,dst;

    for (int i = 1; i < 3; i++) {

        sprintf_s(fileName,  "E:\\Download\\Images\\%d.jpg", i);  //读取图片的路径
        sprintf_s(fileName1, "E:\\Download\\Images\\xpx\\%d.jpg", i); //保存图片的路径

        src = imread(fileName); //从路径中读取图片

//**********************************************
        //操作,这里简单转化为灰度图,仅做展示
        cvtColor(src, dst,COLOR_BGR2GRAY);
//****************************************************


        imwrite(fileName1, dst); //保存处理后的图片
    }
    waitKey(0);   //单位毫秒,0表示永远 
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值