学习案例CaseStudy由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“casestudy面试案例”。
学习案例 Case Study
(二): 数字图像处理的并行化:
数字图像处理是一门应用性很强的学科,其中卷积、边缘提取、傅立叶变换等典型的处理计算量大、耗时多,对这些算法进行并行优化具有十分重要的意义。Intel IPP(即Intel集成性能基元)是一个交叉架构的跨平台软件库,提供了大量的库功能,用于多媒体,音频编码,视频编码,计算机视觉,密码系统以及此类处理的相关过程。本案例将学习如何利用IPP函数和OpenCV实现一个完整的图像处理过程。
案例程序:
利用IPP创建一幅图像并用OpenCV显示它.#include “cv.h” #include “highgui.h” #include “ipp.h” #include int main(){ Ipp8u *gray = NULL;// 定义一幅图像,类型为Ipp8u IppiSize size;// 定义存储图像大小的变量 IplImage* img = NULL;// 定义一幅IplImage类型的图像 CvSize sizeImg;int i = 0, j = 0;size.width = 640;size.height = 480;gray =(Ipp8u *)ippsMalloc_8u(size.width * size.height);//为图像申请内存
for(i = 0;i
sizeImg.width = size.width;sizeImg.height = size.height;img = cvCreateImage(sizeImg, 8, 1);cvSetImageData(img, gray, sizeImg.width);//将gray中数据传给img cvNamedWindow(“image”, 0);//创建一个新的窗口,并命名为”Image” cvShowImage(“image”, img);// 在”image”窗口中显示img图像 cvWaitKey(0);// 等待关闭窗口的命令
cvDestroyWindow(“image”);//销毁”image”窗口 ippsFree(gray);//调用IPP函数释放gray所占内存
cvReleaseImage(&img);//调用OpenCV函数释放img所占内存 return(0);}
练习与思考题:
1. 请将上述代码采用IPP的IppGetCpuClocks函数计算所耗机时,并观察CPU的使用情况。
2. 在已有程序的基础上,添加“图像滤波”的功能,并用IppGetCpuClocks函数计算所耗机时,并观察CPU的使用情况。