【深度學習】針對ImageNet---AlexNet縮寫的影象預處理程式
阿新 • • 發佈:2019-01-24
<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; }