欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

c++結(jié)合opencv如何實(shí)現(xiàn)讀取多張圖片并顯示

 更新時(shí)間:2022年11月10日 10:34:41   作者:大神之路@CV  
這篇文章主要介紹了c++結(jié)合opencv如何實(shí)現(xiàn)讀取多張圖片并顯示問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

方法一

主要函數(shù)

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

分析

String pattern:絕對(duì)路徑下的照片

  • pattern = "/home/Data/data/*.jpg": 選擇*.jpg這一類(lèi)的圖片
  • std::vector< cv::String > & result:這里必須為CV的String,即路徑被存在string類(lèi)型的vector中
  • bool recursive:可省去,當(dāng)recursive為false時(shí),僅僅遍歷指定文件夾內(nèi)符合模式的文件;當(dāng)recursive為true時(shí),會(huì)同時(shí)遍歷指定文件夾的子文件夾

頭文件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;
}

方法二

當(dāng)文件夾的圖片名稱(chēng)沒(méi)有規(guī)律或者有規(guī)律時(shí)(通用方法,萬(wàn)能模板)

#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++) {//依照順序讀取問(wèn)價(jià)下面的每張圖片,并顯示
?? ??? ?Mat image = imread(src_test[i]);
?? ??? ?imshow("image", image);
?? ??? ?waitKey(1000);
?? ??? ?image.release();//將Mat釋放
?? ??? ?destroyAllWindows();

?? ?}
}

方法三

文件夾下圖片有序時(shí),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);//提取出文價(jià)夾下面的每張圖片路徑,放到fileName
? pic = imread(fileName);//讀取fileName路徑下面的圖片
? imshow("tpian", pic);//顯示圖像
? waitKey(1000);//顯示延時(shí)
?}
?pic.release();//將Mat釋放
}

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論