1. 程式人生 > >opencv 基本操作-圖片大小的縮放

opencv 基本操作-圖片大小的縮放

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);