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只转一幅图会很简单,关键在于“批量 ...
随机推荐
- GitLab如何创建分支及拉取代码
从gitlab地址进入进行操作 1.登录GitLab(账号密码由company统一提供,如果是自己操作的话,就需要先注册) 2.登录gitlab后对已创建好的项目进行分支创建(此处默认项目已创建好,如 ...
- SQL Server Url Decode函数
)) ) AS BEGIN ), ), ) SET @count = Len(@url) SET @urlReturn = '' WHILE (@i <= @count) BEGIN ) IF ...
- PHP获取中文首字母的函数
PHP获取中文首字母的函数 <?php header("Content-type: text/html; charset=utf-8"); function getFirst ...
- 重识linux-守护进程,系统服务,daemons
重识linux-守护进程,系统服务,daemons 1分类 分为 单独的守护进程 和超级守护进程 2命名 服务的名称被创建之后,被挂上linux使用,通常在服务的名称之后会加上一个d,例如at和cro ...
- 3. powerdesigner 生成mysql脚本,要求字段、表名有注释
1.字段注释设置 : 在 pdm 视图中,Database --> Edit Current DBMS. 找到 MySql5.0 --> Script --> Objects --& ...
- django的i18n是如何实现的
在程序中出现 _的地方会调用gettext_lazy(django.utils.translation.py) class LogEntry(models.Model): action_time = ...
- String StringBuffer和StringBuilder区别及性能
结论: (1)如果要操作少量的数据用 String: (2)多线程操作字符串缓冲区下操作大量数据 StringBuffer: (3)单线程操作字符串缓冲区下操作大量数据 StringBuilder(推 ...
- Spring Cloud (5)hystrix 服务熔断
1.pom文件 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId&g ...
- Redis 密码
- English-英语学习杂志及资料
[英文原版杂志] >>经济学人 英文原版PDF+双语版+文本音频 超全下载!http://bbs.zhan.com/thread-8443-1-1.html?sid=2004 >&g ...