广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >c++怎么结合opencv实现读取多张图片并显示
  • 202
分享到

c++怎么结合opencv实现读取多张图片并显示

2023-07-04 14:07:49 202人浏览 八月长安
摘要

这篇文章主要介绍“c++怎么结合OpenCV实现读取多张图片并显示”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“c++怎么结合opencv实现读取多张图片并显示”文章能帮助大家解决问题。方法一主要函

这篇文章主要介绍“c++怎么结合OpenCV实现读取多张图片并显示”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“c++怎么结合opencv实现读取多张图片并显示”文章能帮助大家解决问题。

方法一

主要函数

void cv::glob(String pattern,std::vector<string>&result,bool recursive=false)

分析

String pattern:绝对路径下的照片

  • pattern = "/home/Data/data/*.jpg": 选择*.jpg这一类的图片

  • std::vector< cv::String > & result:这里必须为CV的String,即路径被存在string类型的vector中

  • bool recursive:可省去,当recursive为false时,仅仅遍历指定文件夹内符合模式的文件;当recursive为true时,会同时遍历指定文件夹的子文件夹

头文件ai.h

#pragma once#include <opencv2/opencv.hpp>using namespace cv;using namespace std;class Ve {public:    vector<Mat> ReadImage(cv::String pattern);};

cpp文件:

#include "AI.h"#include <iOStream>#include <opencv2/opencv.hpp>using namespace cv;using namespace std;int main(){    cv::String pattern = "E:\\VSprojeect\\test\\test\\images\\*.png";    Ve ve;    vector<Mat> img = ve.ReadImage(pattern);    return 0;}vector<Mat> Ve::ReadImage(cv::String pattern){    vector<cv::String> fn;    glob(pattern, fn, false);    vector<Mat> images;    size_t count = fn.size(); //number of png files in images folder    for (size_t i = 0; i < count; i++)    {        images.emplace_back(cv::imread(fn[i]));        imshow("img", imread(fn[i]));        //imwrite("E:\\VSprojeect\\testyolo\\saveimg\\",images);        waiTKEy(1000);        destroyAllwindows();    }    return images;}

方法二

当文件夹的图片名称没有规律或者有规律时(通用方法,万能模板)

#include<stdio.h>#include "opencv2/opencv.hpp"#include <opencv2\highgui\highgui.hpp>#include<string>#include<vector>#include<iostream>using namespace cv;using namespace std;void main() {    String path = "E:\\VSprojeect\\get_muti_images\\images";//文件夹路径    vector<String>src_test;    glob(path, src_test, false);//将文件夹路径下的所有图片路径保存到src_test中    if (src_test.size() == 0) {//判断文件夹里面是否有图片        printf("error!!!\n");        exit(1);    }    for (int i = 0; i < src_test.size(); i++) {//依照顺序读取问价下面的每张图片,并显示        Mat image = imread(src_test[i]);        imshow("image", image);        waitKey(1000);        image.release();//将Mat释放        destroyAllWindows();    }}

方法三

文件夹下图片有序时,OpenCV读取方法

#include<stdio.h>#include "opencv2/opencv.hpp"#include <opencv2\highgui\highgui.hpp>#include<string>#include<iostream>using namespace cv;using namespace std;void main(){char fileName[500]; Mat pic; for (int i = 0; i < 110; i++) {//文件夹下面一共有110张图片  printf("start deal:%d\n", i + 1);  sprintf_s(fileName, ".//picture//%d.bmp", i);//提取出文价夹下面的每张图片路径,放到fileName  pic = imread(fileName);//读取fileName路径下面的图片  imshow("tpian", pic);//显示图像  waitKey(1000);//显示延时 } pic.release();//将Mat释放}

关于“c++怎么结合opencv实现读取多张图片并显示”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网其他教程频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: c++怎么结合opencv实现读取多张图片并显示

本文链接: https://www.lsjlt.com/news/345632.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作