zoukankan      html  css  js  c++  java
  • Inter IPP 处理图像数据的方法

    Inter IPP没有读取图片和保存图片的函数,需要结合opencv完成这个功能。

    opencv读到图片以后逐个像素点赋值给IPP显然是不可取的,方法如下:

    int main(int argc, char *argv[]) {
        cv::Mat dst = cv::imread("1.png", CV_LOAD_IMAGE_GRAYSCALE);
        //设置roi
        IppiSize roi_size = IppiSize();
        roi_size.height = dst.rows;
        roi_size.width = dst.cols;
    
        //数据 pSrcImage IPP存图像数据
        Ipp8u *pSrcImage = NULL;
        //设置矩阵跨度=0
        int Src_StepBytes = 0;
        pSrcImage = ippiMalloc_8u_C1(dst.cols, dst.rows, &Src_StepBytes);
        ippiCopy_8u_C1R((Ipp8u*)dst.data, dst.step[0], pSrcImage, Src_StepBytes, roi_size);
    
        
        //pImage将IPP格式转opencv格式
        IplImage *pImage = cvCreateImageHeader(cvSize(dst.cols, dst.rows), IPL_DEPTH_8U, 1);
        cvSetData(pImage, (uchar*)pSrcImage, Src_StepBytes);
    
        cvNamedWindow("Example", 1);
        cvShowImage("Example", pImage);
        cvWaitKey(0);
        cvReleaseImageHeader(&pImage);
        cvDestroyWindow("Example");
        ippFree(pSrcImage); 
        return 0;
    }
  • 相关阅读:
    CodeForces 587A
    矩阵快速幂模板
    LCA模板
    Codeforces Round #226 (Div. 2 )
    Codeforces Round #225 (Div. 2)
    SGU132
    SRM 599 DIV 2
    POJ1038
    SGU223
    POJ1185
  • 原文地址:https://www.cnblogs.com/dzzy/p/11772734.html
Copyright © 2011-2022 走看看