使用OpenCV批量定位图片,并每隔0.5秒动态显示效果

来源:互联网 发布:手机共享网络给电脑 编辑:程序博客网 时间:2024/06/04 18:38

简介

使用OpenCV批量定位图片,并每隔0.5秒动态显示效果,可以灰度化或者否,再保存到相应文件夹下。

代码

// Demon.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <opencv2\opencv.hpp>#include <windows.h> #include<vector>#include<string>  #include<iostream>using namespace std;using namespace cv;int _tmain(int argc, _TCHAR* argv[]){    string dir_path = "F:\\AutoSparePart2\\20170928\\Camera\\Cam2\\0\\";    char outDirName[50];    Directory dir;    Rect select;//声明矩形     string extenttype = "*.bmp";    vector<string> fileNames = dir.GetListFiles(dir_path, extenttype, false);    for (int item = 0; item < fileNames.size(); item++)    {        //get image name          string fileName = fileNames[item];        string fileFullName = dir_path + fileName;        //cout << "File name:" << fileName << endl;        cout << "Full path:" << fileFullName << endl;        cv::Mat img = cv::imread(fileFullName);        /*Mat grayImg;        cvtColor(img, grayImg, CV_BGR2GRAY);        cv::imshow("gray", grayImg);        cv::waitKey();*/        sprintf_s(outDirName, "F:\\objectmarker\\todo\\gray\\%08d.jpg", item);        //rectangle矩形        select.x = 20;        select.y = 10;        select.width = 250;        select.height = 200;        rectangle(img, select, Scalar(255, 0, 255), 2, 8, 0);//用矩形画矩形窗        cv::imshow("rectangleImg", img);        cv::waitKey(500);         //imwrite(outDirName, img);    }    return 0;}

这里写图片描述

另一种显示方式

// Demon.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <opencv2\opencv.hpp>#include <windows.h> #include<vector>#include<string>  #include<iostream>using namespace std;using namespace cv;int _tmain(int argc, _TCHAR* argv[]){    string dir_path = "F:\\AutoSparePart2\\20170928\\Camera\\Cam2\\0\\";    char outDirName[50];    Directory dir;    Rect select;//声明矩形     string extenttype = "*.bmp";    vector<string> fileNames = dir.GetListFiles(dir_path, extenttype, false);    for (int item = 0; item < fileNames.size(); item++)    {        //get image name          string fileName = fileNames[item];        string fileFullName = dir_path + fileName;        //cout << "File name:" << fileName << endl;        cout << "Full path:" << fileFullName << endl;        cv::Mat img = cv::imread(fileFullName);        /*Mat grayImg;        cvtColor(img, grayImg, CV_BGR2GRAY);        cv::imshow("gray", grayImg);        cv::waitKey();*/        sprintf_s(outDirName, "F:\\BaiduYunDownload\\ImagesJpg\\Cam-2\\0\\%06d.jpg", item);        //rectangle矩形        select.x = 20;        select.y = 10;        select.width = 250;        select.height = 200;        rectangle(img, select, Scalar(255, 0, 255), 2, 8, 0);//用矩形画矩形窗        /*cv::imshow("rectangleImg", img);        cv::waitKey(500);*/        Mat faceROI = img(select);        cv::imshow("faceROI", faceROI);        cv::waitKey(500);         //imwrite(outDirName, img);    }    return 0;}

这里写图片描述

写入

// Demon.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <opencv2\opencv.hpp>#include <windows.h> #include<vector>#include<string>  #include<iostream>using namespace std;using namespace cv;int _tmain(int argc, _TCHAR* argv[]){    string dir_path = "F:\\AutoSparePart2\\20171017\\Camera\\Cam4\\0\\";    char outDirName[50];    Directory dir;    Rect select;//声明矩形     string extenttype = "*.bmp";    vector<string> fileNames = dir.GetListFiles(dir_path, extenttype, false);    for (int item = 0; item < fileNames.size(); item++)    {        //get image name          string fileName = fileNames[item];        string fileFullName = dir_path + fileName;        //cout << "File name:" << fileName << endl;        cout << "Full path:" << fileFullName << endl;        Mat img = cv::imread(fileFullName);        /*Mat grayImg;        cvtColor(img, grayImg, CV_BGR2GRAY);        cv::imshow("gray", grayImg);        cv::waitKey();*/        sprintf_s(outDirName, "F:\\BaiduYunDownload\\ImagesJpg2\\Cam-4\\0\\%06d.jpg", item+1087);        //rectangle矩形        select.x = 0;        select.y = 0;        select.width = 320;        select.height = 240;        rectangle(img, select, Scalar(255, 0, 255), 2, 8, 0);//用矩形画矩形窗        imshow("rectangleimg", img);        waitKey(500);        Mat faceROI = img(select);        /*cv::imshow("faceROI", faceROI);        cv::waitKey(200); */        //imwrite(outDirName, faceROI);    }    return 0;}

内存不足,改动sprintf_s(outDirName, “F:\BaiduYunDownload\ImagesJpg\Cam-2\0\%06d.jpg”, item);
这里写图片描述

这里写图片描述

原创粉丝点击