07 IplImage和Mat轉換

screen-shot-2016-11-14-at-2-21-23-pm

 

 

sample06_ResizeImage_IplImage_Cobvert_Mat

 

/*
<%%KEEPWHITESPACE%%> 柯博文老師
<%%KEEPWHITESPACE%%> www.powenko.com
<%%KEEPWHITESPACE%%> */
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>

using namespace cv ;
using namespace std ;
int main() {

<%%KEEPWHITESPACE%%>    IplImage *srcImg = NULL;
<%%KEEPWHITESPACE%%>    IplImage *dstImg = NULL;

<%%KEEPWHITESPACE%%>    srcImg = cvLoadImage( "/Users/powenko/Desktop/1.png", 1);
<%%KEEPWHITESPACE%%>    if ( srcImg == NULL ) {
<%%KEEPWHITESPACE%%>        return -1;
<%%KEEPWHITESPACE%%>    }
<%%KEEPWHITESPACE%%>    dstImg = cvCreateImage( cvSize(srcImg->width / 2,
<%%KEEPWHITESPACE%%>                                   srcImg->height / 2),
<%%KEEPWHITESPACE%%>                           srcImg->depth,
<%%KEEPWHITESPACE%%>                           3 );

<%%KEEPWHITESPACE%%>    dstImg = cvCreateImage( cvSize(srcImg->width / 2,
<%%KEEPWHITESPACE%%>                                   srcImg->height / 2),
<%%KEEPWHITESPACE%%>                           srcImg->depth,
<%%KEEPWHITESPACE%%>                           3 );
<%%KEEPWHITESPACE%%>    cvResize( srcImg, dstImg, CV_INTER_LINEAR );

<%%KEEPWHITESPACE%%>    cvShowImage( "Source", srcImg );
<%%KEEPWHITESPACE%%>    cvShowImage( "PowenKo.com   Result", dstImg );

<%%KEEPWHITESPACE%%>    // IplImage轉換 程式碼相當簡單,如下:
<%%KEEPWHITESPACE%%>    // IplImage to Mat
<%%KEEPWHITESPACE%%>    cv::Mat mat(dstImg, 0);

<%%KEEPWHITESPACE%%>    //需要注意的是,兩者互轉皆為共用記憶體位置!
<%%KEEPWHITESPACE%%>    // Mat to IplImage
<%%KEEPWHITESPACE%%>    //cv::Mat mat;
<%%KEEPWHITESPACE%%>    //IplImage *img = IplImage(mat);

<%%KEEPWHITESPACE%%>    cv::imshow("PowenKo.com  IplImage to Mat  Result", mat) ;

<%%KEEPWHITESPACE%%>    cv::waitKey() ;

<%%KEEPWHITESPACE%%>    return 0;
}