1. 程式人生 > >【深度學習】針對ImageNet---AlexNet縮寫的影象預處理程式

【深度學習】針對ImageNet---AlexNet縮寫的影象預處理程式

<pre name="code" class="cpp">/*******************************************************************************************************************
*檔案功能:
*      1---用於用對基於caffe深度學習框架的圖片進行預處理
*      2---針對ImageNet---AlexNet縮寫的影象預處理程式
*      3---將圖片全部處理為:256*256的圖片
*開發環境:
*      win10+vs2013+OpenCv2.4.8
*時間地點:
*      陝西師範大學 2016.11.3
********************************************************************************************************************/
#include<stdio.h>
#include<iostream>

#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>

using namespace std;
using namespace cv;

/*******************************************************************************************************************
*模組說明:
*        控制檯應用程式的入口函式---Main函式
********************************************************************************************************************/
int main(int argc,char** argv)
{
	char strFilename[100];                                            //【1】定義一個字元陣列儲存----圖片的儲存路徑
	char strWindowname[100];                                          //【2】定義一個字元陣列儲存----用於動態更新視窗的視窗名
	char strFilenameAft[100];
	for (int i = 1; i <= 50; i++)
	{
		sprintf_s(strFilename,    "D:\\mydata\\train\\%d.jpg", i); //【3】將圖片的路徑名動態的寫入到strFilename這個地址的記憶體空間
		sprintf_s(strFilenameAft, "D:\\myself\\aft_train\\crack%d.jpeg", i);
		sprintf_s(strWindowname,"Img%d", i);
		
		IplImage* pImg = cvLoadImage(strFilename);                    //【4】從指定的路徑,將圖片載入到記憶體中
		cvNamedWindow(strWindowname,CV_WINDOW_AUTOSIZE);              //【5】建立一個顯示圖片的視窗
		cvMoveWindow(strWindowname,200,200);                          //【6】將顯示視窗固定在(200,200)這個位置顯示都進來的圖片
		cvShowImage(strWindowname,pImg);                              //【7】顯示圖片
		//cv::waitKey(10);                                            //【8】每個1s顯示一張讀進來的圖片

		cvSetImageROI(pImg,cvRect(50,0,256,256));                      //【9】在都進來的圖片pImg上設定ROI區域
		cvNamedWindow("【ROI_Img】");
		cvMoveWindow("【ROI_Img】", 700, 200);
		cvShowImage("【ROI_Img】", pImg);                             //【10】顯示ROI區域的影象
		cv::waitKey(1000);
		cvSaveImage(strFilenameAft, pImg);                            //【11】將修改圖片size之後的圖片儲存在指定的資料夾下

		cvReleaseImage(&pImg);                                        //【9】釋放掉儲存圖片的記憶體
		cvDestroyWindow(strWindowname);                               //【10】銷燬視窗的記憶體
		cvDestroyWindow("【ROI_Img】");
	}
	return 0;
}