首页 > 编程语言 >c++ OpenCV 读取某个文件夹下的所有图片

c++ OpenCV 读取某个文件夹下的所有图片

时间:2024-02-08 20:55:06浏览次数:25  
标签:std vector img int c++ OpenCV 文件夹 include cv

方案一:将文件夹中图像遍历到vector中

#include <vector>
#include <opencv2/imgproc.hpp>
#include <opencv2/highgui.hpp>

std::vector<cv::Mat> ReadImage(cv::String pattern)
{
    std::vector<cv::String> fn;
    cv::glob(pattern, fn, false);
    std::vector<cv::Mat> images;
    int count = fn.size(); //number of png files in images folder
    for (int i = 0; i < count; i++)
    {
        images.emplace_back(cv::imread(fn[i]));
    }
    return images;
}
int main() { cv::String pattern="/home/guopei/桌面/test_imgs/*.jpg"; std::vector<cv::Mat> img_list = ReadImage(pattern); return 0; }

方案二

#include <iostream>
#include "opencv2/core.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/highgui.hpp"
#include <opencv2/core/utils/filesystem.hpp>


int main() {
    std::string img_dir = "../imgs";
    if(cv::utils::fs::exists(img_dir))
    {
        std::cout << "该文件夹存在" << std::endl;
    }

    // 获取当前文件夹下指定格式的文件
    std::vector<cv::String> img_lists;
    cv::utils::fs::glob(img_dir, "*.jpg", img_lists);
    for(auto name:img_lists)
    {
        std::cout << name << std::endl;
    }
    
    return 0;
}

 

标签:std,vector,img,int,c++,OpenCV,文件夹,include,cv
From: https://www.cnblogs.com/lzy0709/p/17789601.html

相关文章

  • 【c&c++】#define 宏的高级用法二
    一,宏的定义与撤销#普通宏定义#definePI3.14//编译阶段替换掉宏#defineT13+4//容易产生歧义#defineT2(3+4)//添加括号后,语义清楚floatr=1.0;floatarea=PI*r*r;inta=2*T1#宏替换后变成inta=2*3+4不符合本意inga......
  • 【c&c++】可变参数:va_list(),va_start(),va_arg(),va_end() 详细解析
    目录1、含义:2、使用:3、连续打印出自定义格式的文字:1、含义:(1)va_list是C语言中的一个宏定义,用于表示一个变长参数列表。它是一个指向变长参数列表的指针,可以通过宏va_start、va_arg和va_end对变长参数列表进行访问和操作。在函数中需要接收不定数量的参数时,可以使用va_list来处......
  • 【c&c++】linux守护进程设置开机自启动的两种方式
    linux守护进程设置开机自启动的两种方式前期准备第一种方式第二种方式 前期准备首先,我们创建一个守护进程1、守护进程初始化程序init.c文件如下:#include<unistd.h>#include<signal.h>#include<sys/param.h>#include<sys/types.h>#include<sys/stat.h>voidinit......
  • C++多线程 第四章 同步并发操作
    第四章同步并发操作等待事件设想一个情景:你正坐在一辆从哈尔滨驶向郴州的绿皮火车上,这趟车需要耗时2天2夜,合计3000公里的路程.于是在这里,我们将你和司机视作为两个线程.你的任务是在目的地下车,司机的任务是将车开到目的地.假设你和司机坐在同一个车厢内,并且你是个不说......
  • .idea文件夹如何取消版本控制
    解决方法#先执行删除命令$gitrm-r--cached".idea"#提交到本地$gitcommit-m"del.ideafile"#推送到远程仓库$gitpush-uorigin"master"这样处理完成后,下次同步的时候还会要求提交,所以需要在本地设置该文件夹的文件不同步,所以还得设置一下,在工程根目录下新......
  • C++中的static关键字和this指针
    C++中的static关键字用来修饰静态成员变量和静态成员函数,static定义的类的静态成员(成员变量和成员函数),它会有一块单独的存储区。当我们把这个类实例化时,会为类实例化的对象来分配空间,显然此时给对象分配的内存空间不包括静态成员所占的空间。特别要注意,静态成员变量必须在类......
  • C++ CryptoPP使用AES加解密
    Crypto++(CryptoPP)是一个用于密码学和加密的C++库。它是一个开源项目,提供了大量的密码学算法和功能,包括对称加密、非对称加密、哈希函数、消息认证码(MAC)、数字签名等。Crypto++的目标是提供高性能和可靠的密码学工具,以满足软件开发中对安全性的需求。高级加密标准(Advance......
  • Visual Studio部署matplotlib绘图库的C++版本
      本文介绍在VisualStudio软件中配置、编译C++环境下matplotlibcpp库的详细方法。  matplotlibcpp库是一个C++环境下的绘图工具,其通过调用Python接口,实现在C++代码中通过matplotlib库的命令绘制各类图像。由于其需要调用Python接口,因此在配置matplotlibcpp库时有些较为麻烦......
  • C++实现memcpy和memmove(含调试程序)
    #include<iostream>#include<string>usingstd::cout;usingstd::endl;void*mymencpy(void*dest,void*src,size_tnum){ char*d=(char*)dest; char*s=(char*)src; while(num--){ *(d++)=*(s++); } returnd;}void*mymenmove(vo......
  • C++编程练习||1.类模板2.整数集合类3.复数集合类,模板结合
    1.类模板 类模板的作用  使用类模板使用户可以为类声明一种模式,使得类中的某些数据成员、某些成员函数的参数、某些成员函数的返回值,能取任意类型(包括基本类型的和用户自定义类型)。  类模板的声明  类模板template<模板参数表>class类名{类成员声明};  ......