OpenCV2中影象讀取、顯示、儲存等基本操作
阿新 • • 發佈:2019-01-10
之前看《學習OpenCV》這本書,一直在用IplImage,但是我自己安裝的是OpenCV2的,因此,在學這本書的時候,結合自己用的時候會出現很多的疑惑,知道現在才搞清楚,原來這本書是基於OpenCV1的........不過幸好發現的早,今天主要學習了OpenCV2中隊影象的基本操作,如影象的載入,影象的顯示以及儲存等基本操作,確實感覺比OpenCV1方便很多,貼上今天的敲的程式碼。
/***************************************************** ** 第二講 影象讀取、顯示、儲存等基本操作 *****************************************************/ #include "cv.h" #include "highgui.h" #include <iostream> using namespace std; using namespace cv; int main(int argc, char * argv[]) { Mat image; //定義一個影象物件 image = imread("G:/Learning/Machine_version/Photo/test.jpg"); //讀取影象 if (!image.data) //判斷影象載入是否成功 { cout << "Fail to load image!!" << endl; system("pause"); return 0; } Mat src1; image.copyTo(src1); //將影象image深拷貝到src1中 flip(src1, src1, 1); //對影象進行翻轉 namedWindow("src1"); //建立視窗src1 imshow("src1", src1); //在視窗src1中顯示翻轉後的影象 namedWindow("my"); //建立視窗My imshow("my", image); //在視窗my中顯示image影象 int key=waitKey(0); //等待按鍵的輸入 imwrite("my.jpg", image); // 將image影象儲存為my.jpg cout << "Size of image is: " << image.size().height << ", " //獲得影象的高,寬等尺寸 << image.size().width << endl; cout << "ASCII of the key is: " << key << endl; /******************自己定義影象物件***********************/ //Mat image(200, 100, CV_8UC1, Scalar(100)); //Mat src; //src = image; //淺拷貝,src和image共用同一片記憶體 ////image.copyTo(src);//深拷貝,各自佔用一塊記憶體區域,對src的操作不會影響image system("pause"); return 0; }