opencv 基本操作-圖片大小的縮放
阿新 • • 發佈:2019-01-25
1》這個函式兩個引數:檔案的名字,載入的方式(如果是正數表示使用 3 通道,如果是 0 單通道,如果是負數表示使用原來影象的格式)
cvLoadImage("fileName",int type);
簡單複製圖片:
#include <iostream> #include <cv.h> #include <highgui.h> IplImage *g_pGrayImage = NULL; IplImage *g_pBinaryImage = NULL; void on_trackbar(int pos) { // 二值化函式 cvThreshold(g_pGrayImage, g_pBinaryImage, pos, 255, CV_THRESH_BINARY); // 通過滾動條來檢視二值圖 cvShowImage("change", g_pBinaryImage); } int main(int argc, const char * argv[]) { IplImage *pSrcImage = cvLoadImage("/Opencv_element/images/446678.jpg"); g_pGrayImage = cvCreateImage(cvGetSize(pSrcImage), IPL_DEPTH_8U, 1); cvCvtColor(pSrcImage, g_pGrayImage, CV_BGR2GRAY); g_pBinaryImage = cvCreateImage(cvGetSize(g_pGrayImage), IPL_DEPTH_8U, 1); cvNamedWindow("change",CV_WINDOW_AUTOSIZE); int nThreshold = 0; cvCreateTrackbar("change", "change", &nThreshold, 254,on_trackbar); on_trackbar(1); cvWaitKey(); IplImage *pImg = cvLoadImage("/Opencv_element/images/446678.jpg"); // 強制載入為單通道 IplImage *pImg3 = cvLoadImage("/Opencv_element/images/446678.jpg",0); IplImage* pImg2 = cvCreateImage(cvGetSize(pImg), pImg->depth, pImg->nChannels); // 對原來的影象進行取反 cvNot(pImg3, pImg3); // 複製影象,使用 mask 提取圖片 cvCopy(pImg, pImg2,g_pBinaryImage); cvNamedWindow("Image",CV_WINDOW_AUTOSIZE); cvNamedWindow("Image2",CV_WINDOW_AUTOSIZE); cvNamedWindow("Image3",CV_WINDOW_AUTOSIZE); cvShowImage("Image", pImg); cvShowImage("Image2", pImg2); cvShowImage("Image3", pImg3); cvWaitKey(); cvDestroyWindow("Image"); cvDestroyWindow("Image2"); cvDestroyWindow("Image3"); cvReleaseImage(&pImg); cvReleaseImage(&pImg2); cvReleaseImage(&pImg3); return 0; }
2: 儲存圖片:
檔名:圖片指標
cvSave("fileName", pImg);