使用OpenCV批量定位图片,并每隔0.5秒动态显示效果
2017-10-20 15:37
1196 查看
简介
使用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);
相关文章推荐
- 动态设置Button、ImageView等组件在不同状态下的背景/前景显示效果。 扩展下的话可以前景/背景的显示效果可以使用网络图片。
- Java之简单的图片动态显示(实现类似GIF动画效果)
- 转换排列Qt中使用OpenCV显示图片时,Mat结构转换为QImage结构的问题
- 在MFC对话框中显示图片的三种方法(有两种使用OpenCv)
- 使用GridView和ImageView组件实现图片显示效果
- 用src属性动态替换图片;图片预加载---鼠标事件实现图片翻转效果;随机显示图片和onClick事件
- 在WinCE下绘制半透的效果要注意的问题+WINCE 下创建动态显示图片窗口
- 使用js给页面显示的图片添加水印效果
- setImageEdgeInsets 和 setImage配合使用达到button区域大并可调节其上图片显示区域大小的效果
- opengl离屏渲染(不需要和窗口绑定,仅当作一个可以渲染一张图片的API使用)+ opencv显示
- 使用jQuery动态改变图片显示大小
- 动态显示图片,并为hyperlink 做鼠标悬停效果
- OpenCV学习笔记(15)使用OpenGL显示双目视觉三维重构效果 (转)
- 使用Qt将一系列图片通过网络发送到客户端动态显示的参考代码(修改一下可以用作远程网络监控)。
- 使用ADO ACCESS ImageEn 动态,显示图片,导入图片,导出图片,删除图片
- 使用picture控件动态显示图片方法
- 在ios中使用opencv将彩色图片转换成为灰度图,uiimageview无法显示问题
- GridView使用lightbox,鼠标点击显示图片效果
- 使用Qt显示openCV矩阵图片
- BCB中使用opencv显示图片