OpenCV批量读入(处理)
#include <windows.h>
#include <iostream>
#include <opencv2/opencv.hpp> using namespace cv;
using namespace std;
char* WcharToChar(const wchar_t* wp)
{
char *m_char;
int len = WideCharToMultiByte(CP_ACP, , wp, wcslen(wp), NULL, , NULL, NULL);
m_char = new char[len + ];
WideCharToMultiByte(CP_ACP, , wp, wcslen(wp), m_char, len, NULL, NULL);
m_char[len] = '\0';
return m_char;
} wchar_t* CharToWchar(const char* c)
{
wchar_t *m_wchar;
int len = MultiByteToWideChar(CP_ACP, , c, strlen(c), NULL, );
m_wchar = new wchar_t[len + ];
MultiByteToWideChar(CP_ACP, , c, strlen(c), m_wchar, len);
m_wchar[len] = '\0';
return m_wchar;
} wchar_t* StringToWchar(const string& s)
{
const char* p = s.c_str();
return CharToWchar(p);
}
int main()
{
//定义文件格式
const string file_form = "*.jpg";
const string filePath = "M";
string file_ReadPath = filePath + "/" + file_form;
HANDLE hFile;
//指定搜索目录和文件类型,如搜索d盘的音频文件可以是"D:\\*.mp3"
LPCTSTR lpFileName = StringToWchar(file_ReadPath);
//搜索得到的文件信息将储存在pNextInfo中;
WIN32_FIND_DATA pNextInfo;
//请注意是 &pNextInfo , 不是 pNextInfo;
hFile = FindFirstFile(lpFileName, &pNextInfo);
int j = ;
if (hFile == INVALID_HANDLE_VALUE)
{
return false;//搜索失败
}
do
{
//必须加这句,不然会加载.和..的文件而加载不了图片,
if (pNextInfo.cFileName[] == '.')//过滤.和..
continue;
j++;//读取一张图
//wcout<<pNextInfo.cFileName<<endl;
printf("%s\n", WcharToChar(pNextInfo.cFileName));
//对读入的图片进行处理
Mat srcImage = imread(filePath + "\\" + WcharToChar(pNextInfo.cFileName), CV_LOAD_IMAGE_GRAYSCALE);
if ()
{
stringstream ss;
ss << "h" << j << ".png";
imwrite(ss.str(), srcImage);
} } while (FindNextFile(hFile, &pNextInfo) && j<); }
OpenCV批量读入(处理)的更多相关文章
- opencv 批量图像读写
处理图像数据集时通常要读写整个文件夹里的图像,这时就会用的图像的批量读写. 比较常用的方法就是生成一个包含所有图像的txt列表 生成txt文件的方法如下: 利用cmd进入dos 利用路径进入指定文件夹 ...
- Opencv怎么读入,显示,保存图像-OpenCV步步精深
怎么读入图像呢? 我们用 img = cv2.imread('图像路径\原图像名称',0) 原图像名称要有后缀 .png , .jpg等等原图像带有的后缀. 这里我们着重说明一下图像路径,这个路径一定 ...
- opencv批量读取图片
#include<opencv2/opencv.hpp>using namespace cv;using namespace std;int main(){ int num=4;// ...
- MATLAB批量读入图片
%% import pictures, and save into images{img_num} function [images, img_num, vertical_border] = impo ...
- opencv批量修改图片尺寸
#include"opencv2/opencv.hpp" using namespace std; using namespace cv; #include<opencv2/ ...
- Mac中opencv批量对图片进行二值化
对灰度图像进行二值化,传入的图片是手写汉字的截图,通过二值化把字的部分提出来.用ostu进行二值化 #include <stdio.h> #include <iostream> ...
- 利用python和opencv批量去掉图片黑边
import os import cv2 import numpy as np from scipy.stats import mode import time import concurrent.f ...
- R语言︱文件读入、读出一些方法罗列(批量xlsx文件、数据库、文本txt、文件夹)
笔者寄语:小规模的读取数据的方法较为简单并且多样,但是,批量读取目前看到有以下几种方法:xlsx包.RODBC包.批量转化成csv后读入. R语言中还有一些其他较为普遍的读入,比如代码包,R文件,工作 ...
- OpenCV玩耍(一)批量resize一个文件夹里的所有图像
鉴于用caffe做实验的时候,里面牵扯到一个问题是必须将训练集和测试集都转成256*256的图像,而官网给出的代码又不会用,所以我用opencv转了.其实opencv只转一幅图会很简单,关键在于“批量 ...
随机推荐
- Linux free -m 详解命令
如下显示free是显示的当前内存的使用,-m的意思是M字节来显示内容.我们来一起看看. 1 2 3 4 5 6 $ free -m total used ...
- 14.json文件读取
json文件读取 1.#读取json import json str='''[ { "name":"Tom", "gender":" ...
- Maven传递依懒
A依赖B,B依赖C.B是A的直接依赖,C是A的传递依赖. 1.Maven自己调解原则 先定义者优级先原则,谁先定义就用谁的传递依赖. 路径近者优级先原则,直接依赖级别高高于传递依赖. 2.排除依懒 & ...
- redis(2)---redis基本数据类型及常见命令
Redis的魅力 缓存大致可以分为两类,一种是应用内缓存,比如Map(简单的数据结构),以及EH Cache(Java第三方库),另一种就是缓存组件,比如Memached,Redis:Redis(re ...
- Android中糟糕的AsyncTask
上周做一个Android中的帧动画,因为每帧图片都比较大,所以采用每次读取一帧,延时再读取下一帧的方式实现.在读取的时候,采用AsyncTask,去设置ImageView的背景.但是发现需要切换帧动画 ...
- 【spring-boot】spring-boot 整合 ehcache 实现缓存机制
方式一:老 不推荐 参考:https://www.cnblogs.com/lic309/p/4072848.html /*************************第一种 引入 ehcach ...
- $tojson和json.stringify的区别
JSON.stringify(),将value(Object,Array,String,Number...)序列化为JSON字符串 JSON.parse(), 将JSON数据解析为js原生值 toJS ...
- Linux sed 流编辑器
sed是stream editor的简称,也就是流编辑器.盗用一张图片解释原理 命令格式: SYNPPSIS: sed [OPTION]… {script-only-if-no-other-scrip ...
- mac 命令行上传文件,mac tar.gz命令压缩
在mac上可以直接打开命令行给服务器上传文件,注意是本地的命令行,不是服务器的命令行,我就走了绕路 命令可以看这里https://www.cnblogs.com/hitwtx/archive/2011 ...
- dshow采集过程
捕捉静态图片常用的filter是Sample Graber filter,它的用法参考手册.然后将捕捉filter的静态PIN连接到Sample Grabber,再将Sample Grabber连接到 ...