zoukankan      html  css  js  c++  java
  • openCV(三)---图像缩放

      

    UIImage *img1 = [UIImage imageNamed:@"1448941176867"];

    //将UIImage转换为IplImage格式

    IplImage *pimage = [self convertToIplImage:img1];

    //缩放图片

    //比例值

    float fScale = 0.4; 

    CvSize cvsize;

    cvsize.width = pimage->width * fScale;

    cvsize.height = pimage ->height * fScale;

    //创建输出图像

    IplImage *outImage = cvCreateImage(cvsize, pimage->depth, pimage->nChannels);

    //缩放图像

    cvResize(pimage, outImage);

    //将IplImage图像转换为UIImage

    UIImage *img = [self convertToUIImage:outImage];

    self.imgView.image = img;

    //释放图片内存

    cvReleaseImage(&pimage);

    cvReleaseImage(&outImage);

    上边代码是用IplImage来实现的图片缩放,可以手动管理图片内存的释放。

    下边这段代码是用Mat来实现的图片缩放

        cv::Mat matImage = [self cvMatFromUIImage:img1];
        
        float fScale = 0.1;
        cv::Mat outImage;
        cv::resize(matImage, outImage, cvSize(matImage.cols * fScale, matImage.rows * fScale));
        
        UIImage *img2 = [self UIImageFromCVMat:outImage];
        self.imgView.image = img2;

    cv::resize方法可以用来调用图片的size。

    获取Mat格式的图片宽高可以用matImage.cols和matImage.rows来获取。分别表示像素矩阵的列和行,列数相当于宽,行数相当于高。

    关于UIImage和IplImage的相互转换,参考我的另一个随笔

    http://www.cnblogs.com/iOSDeng/p/5081588.html

  • 相关阅读:
    帮助智力障碍的可怜儿童
    PE556
    ZJOIDay2T1 BB题解
    CTSC2016游记
    再次被老爸钦点退役
    欧拉筛
    考据
    51nod 1020 逆序排列(动态规划)
    51nod 1186 质数检测(Miller-Rabin算法)
    大整数类模板
  • 原文地址:https://www.cnblogs.com/iOSDeng/p/5082562.html
Copyright © 2011-2022 走看看