【深度学习】针对ImageNet---AlexNet所写的图像预处理程序(3264*2448)
2016-11-09 17:39
561 查看
/******************************************************************************************************************* *文件功能: * 1--针对AlexNet模型,进行的图片处理程序,将图片处理成256*256的大小 * 2--用于更改图片的图片名,后缀图片格式,图片的大小 * 3--图片原来的规格有两种: * 1---2448*3264 * 2---3264*2448 *处理过程: * 2448*3264------2048*2048(setROI)------>1024*1024(cvPyrDown)--->512*512----->256*256 开发环境: * win10+vs2013+OpenCv2.4.8 *时间地点: * 陕西师范大学 2016.11.9 ********************************************************************************************************************/ #include<stdio.h> #include<iostream> #include<opencv2/core/core.hpp> #include<opencv2/highgui/highgui.hpp> #include<opencv2/imgproc/imgproc.hpp> #include<opencv2/core/core_c.h> #include<opencv2/imgproc/imgproc_c.h> using namespace std; using namespace cv; int main() { char strFilename[100]; //【1】定义一个字符数组保存----图片的存储路径 char strWindowname[100]; //【2】定义一个字符数组保存----用于动态更新窗口的窗口名 char strFilenameAft[100]; //【3】定义一个字符数组保存----用于给处理之后的图片动态的命名 char strFilenameLast[100]; int j = 1; for (int i = 1; i <= 211; i++) { //【4】将图片的路径名动态的写入到strFilename这个地址的内存空间 sprintf_s(strFilename, "F:\\crack_classify_img\\crack_3_45_256\\1 (%d).jpg", i); sprintf_s(strFilenameAft, "F:\\crack_classify_img\\aft_crack_3_45_256\\noc%d.jpeg", j); sprintf_s(strWindowname, "srcImg%d", j); //=========================================================================================== //【模块1】将图片读入内存,并显示 //=========================================================================================== IplImage* pImg = cvLoadImage(strFilename); //【1】从指定的路径,将图片加载到内存中 //cvNamedWindow(strWindowname, CV_WINDOW_AUTOSIZE); //【2】创建一个显示图片的窗口 //cvMoveWindow (strWindowname,0,0); //【3】将显示窗口固定在(200,200)这个位置显示都进来的图片 //cvShowImage (strWindowname, pImg); //【4】显示图片 //cvWaitKey(0); //============================================================================================ //【模块2】设置ROI区域裁剪图片----利用ROI区域将图片裁剪为:2048*2048 //============================================================================================ if ((pImg->width == 2448) && (pImg->height == 3264)) { cvSetImageROI(pImg, cvRect(200, 608, 2048, 2048));//【1】设置一个2048*2048的ROI区域 } else { cvSetImageROI(pImg, cvRect(608, 200, 2048, 2048));//【1】设置一个2048*2048的ROI区域 } cvSaveImage(strFilenameAft,pImg); IplImage* pImgCopy = cvLoadImage(strFilenameAft); //=========================================================================================== //【模块3】高斯金字塔下采样 // 1----将图片size调节到256*256,并显示 // 2----2048*2048:经过连续三次下采样,变为256*256 //============================================================================================ IplImage* pPyrDownImg = cvCreateImage (cvSize(pImgCopy->width / 2, pImgCopy->height / 2), pImgCopy->depth, pImgCopy->nChannels); IplImage* pPyrDownImg1 = cvCreateImage(cvSize(pPyrDownImg->width / 2, pPyrDownImg->height / 2), pPyrDownImg->depth, pPyrDownImg->nChannels); IplImage* pPyrDownImg2 = cvCreateImage(cvSize(pPyrDownImg1->width/ 2, pPyrDownImg1->height/ 2), pPyrDownImg1->depth, pPyrDownImg1->nChannels); cvPyrDown(pImg, pPyrDownImg, CV_GAUSSIAN_5x5);//【1】2048*2048--->1024*1024 cvPyrDown(pPyrDownImg, pPyrDownImg1, CV_GAUSSIAN_5x5);//【2】1024*1024--->512*512 cvPyrDown(pPyrDownImg1, pPyrDownImg2, CV_GAUSSIAN_5x5);//【3】512*512----->256*256 //cvNamedWindow("【PyrDown】", CV_WINDOW_AUTOSIZE); //cvMoveWindow ("【PyrDown】", 0, 0); //cvShowImage ("【PyrDown】", pPyrDownImg2); cvSaveImage(strFilenameAft, pPyrDownImg2); //【2】将修改图片size之后的图片保存在指定的文件夹下 ++j; cv::waitKey(1); //============================================================================================ //【模块4】释放内存空间 //============================================================================================ cvReleaseImage(&pImg); //【1】释放掉存储图片的内存 cvReleaseImage(&pImgCopy); cvReleaseImage(&pPyrDownImg); cvReleaseImage(&pPyrDownImg1); cvReleaseImage(&pPyrDownImg2); cvDestroyWindow(strWindowname); //【2】销毁窗口的内存 //cvDestroyWindow("【PyrDown】"); } return 0; }
相关文章推荐
- 【深度学习】针对ImageNet---AlexNet缩写的图像预处理程序
- 【深度学习】针对CIFAR-10模型所写的进行图片size,图片名,后缀图片格式写的预处理程序
- [caffe]深度学习之图像分类模型AlexNet解读
- [caffe]深度学习之图像分类模型AlexNet解读
- Python---利用scipy.misc等库对jpg以及png等图像数据预处理(用于深度学习喂数据)
- [caffe]深度学习之图像分类模型AlexNet解读
- 深度学习之图像分类模型Alexnet解读
- [caffe]深度学习之图像分类模型AlexNet解读
- 深度学习之图像分类模型AlexNet解读
- 【转】[caffe]深度学习之图像分类模型AlexNet解读
- 深度学习之图像分类模型AlexNet各层解读
- [caffe]深度学习之图像分类模型AlexNet解读
- [caffe]深度学习之图像分类模型AlexNet解读
- 机器学习实验(十二):深度学习之图像分类模型AlexNet结构分析和tensorflow实现
- [caffe]深度学习之图像分类模型AlexNet解读
- 【转载】利用scipy.misc等库对jpg以及png等图像数据预处理(用于深度学习喂数据)
- [caffe]深度学习之图像分类模型AlexNet解读
- 深度学习Alexnet网络对图像进行分类/预测(迁移学习)
- 【神经网络与深度学习】学习笔记:AlexNet&Imagenet学习笔记
- [caffe]深度学习之图像分类模型AlexNet解读