博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Opencv批量读取文件夹图片
阅读量:4226 次
发布时间:2019-05-26

本文共 2590 字,大约阅读时间需要 8 分钟。

Opencv读取文件夹连续图片,RGB分量显示,图像灰度化  1.读取文件夹连续图片刚开始学习图像处理,开始只能一次读入一张图片,今天从网上查了一些资料,自己写了一个可以连续读取多张图片函数。char filename[100];char windowname[100];IplImage* pScr;unsigned char *Readfigsmethod1(int num)// 读入num个图片{ for(int i=1;i<=num;i++) {  sprintf(filename,"D:/test/%d.jpg",i);// 将图片以数字命名:例如1.jpg 2.jpg等,放入D:/test/文件夹下  sprintf(windowname,"window%d.jpg",i);  pScr=cvLoadImage(filename,1);//导入图片  cvNamedWindow(windowname,CV_WINDOW_AUTOSIZE);  cvShowImage(windowname,pScr);//显示图片  //cvWaitKey(0); } cvWaitKey(0); cvReleaseImage(&pScr);//释放图片 cvDestroyAllWindows();//销毁窗口  return 0;} 注释:连续读取图片主要问题在于filename指向图片目录, sprintf(filename,"D:/test/%d.jpg",i)的使用可以使得filename可以从1.jpg,2.jpg,一直到num.jpg. filename=D:/test/i.jpg.2.RGB分量显示,图像灰度化// RGBSPLIT.cpp : Defines the entry point for the console application.//#include "stdafx.h"//#include "afx.h"#include "cv.h"#include "highgui.h"#include 
#include
#include
char filename[100];char filename1[100];char windowname[100];IplImage* pScr;IplImage *img1;IplImage *img=0;IplImage *img_red=0;IplImage *img_green=0;IplImage *img_blue=0;unsigned char *Readfigsmethod1(int num);//实现连续读取图片的函数unsigned char *RGBsplit(IplImage *img);//实现RGB量分开显示的函数unsigned char *RGBtoGray(IplImage *img);//实现灰度化函数int main(int argc, char *argv[]){ img=cvLoadImage("D:\\test\\1.jpg"); cvNamedWindow("lena",CV_WINDOW_AUTOSIZE);//创建窗口,窗口名字lena cvShowImage("lena",img);//载入转化后的图像 RGBsplit(img);//调用RGB分开显示函数,若想实现其他功能,在此处调用其他函数即可。但是显示后cvReleaseImage()中相应参数要更改成显示的对象。 cvWaitKey(0); cvReleaseImage(&img); cvReleaseImage(&img_red); cvDestroyAllWindows(); return 0;}unsigned char *Readfigsmethod1(int num){ for(int i=1;i<=num;i++) { sprintf(filename,"D:/test/%d.jpg",i); sprintf(windowname,"window%d.jpg",i); pScr=cvLoadImage(filename,1); cvNamedWindow(windowname,CV_WINDOW_AUTOSIZE); cvShowImage(windowname,pScr); //cvWaitKey(0); } cvWaitKey(0); cvReleaseImage(&pScr); cvDestroyAllWindows(); return 0;}unsigned char *RGBtoGray(IplImage *img){ img1 = cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1); //色彩空间转换,将源彩色图像img转化成目标灰色图像imag1 cvCvtColor(img,img1,CV_BGR2GRAY); //关键 cvNamedWindow("GrayImage",CV_WINDOW_AUTOSIZE);//创建窗口,窗口名字GrayImage cvShowImage("GrayImage",img1);//载入转化后的图像 return 0;}unsigned char *RGBsplit(IplImage *img){ //IplImage* imgeR,img_blue,imageG,imgGRAY; int width=img->width; int height=img->height; int channel=img->nChannels; int widthStep=img->widthStep; int i,j; img_red= cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,3); img_green= cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,3); img_blue= cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,3); for (i=0;i

转载地址:http://dwkqi.baihongyu.com/

你可能感兴趣的文章
lua math.ceil math.ceil
查看>>
cocos2dx CCNode计算node的大小
查看>>
cocos2dx 布局记录(1)
查看>>
lua 多行注释和取消多行注释
查看>>
缩放系数计算
查看>>
cocos2dx --- 按钮点击居中放大
查看>>
cocos2dx menu位置计算
查看>>
cocos2dx资源加载机制(同步/异步)
查看>>
cocos2dx C++调用java -- 字符串传递
查看>>
git学习网站
查看>>
JavaScript 学习网站
查看>>
cocos2dx java调用c++ -- 字符串传递
查看>>
CCScaleTo与CCScaleBy比较
查看>>
cocos2dx CCObject引用计数,内存释放分析(1)
查看>>
cocos2dx2.X 编译时,传递编译选项
查看>>
ccCArray.cpp 文件
查看>>
cocos2dx 屏幕大小
查看>>
libgdx: 2D Particle Editor工具使用
查看>>
eclipse 给jar库添加源码
查看>>
C++ 枚举声明 enum 和 enum class
查看>>