OpenMP并行编程应用—加速OpenCV图像拼接算法

OpenMP并行编程应用—加速OpenCV图像拼接算法

ID:39466730

大小:41.00 KB

页数:6页

时间:2019-07-04

OpenMP并行编程应用—加速OpenCV图像拼接算法_第1页
OpenMP并行编程应用—加速OpenCV图像拼接算法_第2页
OpenMP并行编程应用—加速OpenCV图像拼接算法_第3页
OpenMP并行编程应用—加速OpenCV图像拼接算法_第4页
OpenMP并行编程应用—加速OpenCV图像拼接算法_第5页
资源描述:

《OpenMP并行编程应用—加速OpenCV图像拼接算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、OpenMP并行编程应用—加速OpenCV图像拼接算法OpenMP是一种应用于多处理器程序设计的并行编程处理方案,它提供了对于并行编程的高层抽象,只需要在程序中添加简单的指令,就可以编写高效的并行程序,而不用关心具体的并行实现细节,降低了并行编程的难度和复杂度。也正因为OpenMP的简单易用性,它并不适合于需要复杂的线程间同步和互斥的场合。OpenCV中使用Sift或者Surf特征进行图像拼接的算法,需要分别对两幅或多幅图像进行特征提取和特征描述,之后再进行图像特征点的配对,图像变换等操作。不同图像的特征提取和描述的工作是整个过程中最耗费时

2、间的,也是独立运行的,可以使用OpenMP进行加速。以下是不使用OpenMP加速的Sift图像拼接原程序:[cpp]viewplaincopyprint?在CODE上查看代码片派生到我的代码片#include"highgui/highgui.hpp"#include"opencv2/nonfree/nonfree.hpp"#include"opencv2/legacy/legacy.hpp"#include"omp.h"usingnamespacecv;//计算原始图像点位在经过矩阵变换后在目标图像上对应位置Point2fgetTransf

3、ormPoint(constPoint2foriginalPoint,constMat&transformMaxtri);intmain(intargc,char*argv[]){floatstartTime=omp_get_wtime();Matimage01=imread("Test01.jpg");Matimage02=imread("Test02.jpg");imshow("拼接图像1",image01);imshow("拼接图像2",image02);//灰度图转换Matimage1,image2;cvtColor(image01

4、,image1,CV_RGB2GRAY);cvtColor(image02,image2,CV_RGB2GRAY);//提取特征点SiftFeatureDetectorsiftDetector(800);//海塞矩阵阈值vectorkeyPoint1,keyPoint2;siftDetector.detect(image1,keyPoint1);siftDetector.detect(image2,keyPoint2);//特征点描述,为下边的特征点匹配做准备SiftDescriptorExtractorsiftDesc

5、riptor;MatimageDesc1,imageDesc2;siftDescriptor.compute(image1,keyPoint1,imageDesc1);siftDescriptor.compute(image2,keyPoint2,imageDesc2);floatendTime=omp_get_wtime();std::cout<<"不使用OpenMP加速消耗时间:"<

6、matchePoints;matcher.match(imageDesc1,imageDesc2,matchePoints,Mat());sort(matchePoints.begin(),matchePoints.end());//特征点排序//获取排在前N个的最优匹配特征点vectorimagePoints1,imagePoints2;for(inti=0;i<10;i++){imagePoints1.push_back(keyPoint1[matchePoints[i].queryIdx].pt);i

7、magePoints2.push_back(keyPoint2[matchePoints[i].trainIdx].pt);}//获取图像1到图像2的投影映射矩阵,尺寸为3*3Mathomo=findHomography(imagePoints1,imagePoints2,CV_RANSAC);MatadjustMat=(Mat_(3,3)<<1.0,0,image01.cols,0,1.0,0,0,0,1.0);MatadjustHomo=adjustMat*homo;//获取最强配对点在原始图像和矩阵变换后图像上的对应位

8、置,用于图像拼接点的定位Point2foriginalLinkPoint,targetLinkPoint,basedImagePoint;originalLinkPoint=ke

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。