openmp在图像处理上面的运用

简介: // openmptest的测试程序 //   #include "stdafx.h"   void Test(int n){     for (int i=0;i
// openmptest的测试程序
//
 
#include "stdafx.h"
 
void Test(int n){
    for (int i=0;i<10000;i++)
    {
        int j=0;
        j = j+1;
    }
    printf("%d",n);
}
 
int _tmain(int argc_TCHARargv[])
{
    for (int i=0;i<10;i++)
    {
        Test(i);
    }
    getchar();
    return 0;
}
而开启openmp
代码
// openmptest的测试程序
//
 
#include "stdafx.h"
 
void Test(int n){
    for (int i=0;i<10000;i++)
    {
        int j=0;
        j = j+1;
    }
    printf("%d",n);
}
 
int _tmain(int argc_TCHARargv[])
{
    for (int i=0;i<10;i++)
    {
        Test(i);
    }
    getchar();
    return 0;
}
速度更快。
在最简单的层次上,openmp提供了粗颗粒的并行算法。一直以来,我都在寻找图像处理的加速算法,但是由于图像处理的特性(大多为线性项目),所以很难有好的提速方法。但是对于批量的图像处理,采用我们这种方法将是非常好用的。
编写较为复杂的opencv 程序
// openmptest的测试程序
//
 
#include "stdafx.h"
#include <iostream>
#include <opencv2/opencv.hpp>  
#include "GoCvHelper.h"
using namespace std;
using namespace cv;
using namespace GO;
 
Mat Test(Mat src){
    Mat draw;
    Mat gray;
    cvtColor(src,gray,COLOR_BGR2GRAY);
    threshold(gray,gray,100,255,THRESH_OTSU);
    connection2(gray,draw);
    return draw;
}
 
 
int _tmain(int argc_TCHARargv[])
{    
    //时间记录
    const int64 start = getTickCount();
    vector<MatvectorMats;
    //文件目录
    char cbuf[100] = "F:/图片资源/纹理库brodatz/brodatzjpg";
    //获取所有文件
    getFiles(cbuf,vectorMats);
    //循环处理
   // #pragma omp parallel for
    for (int i=0;i<vectorMats.size();i++)
    {
        Mat dst = Test(vectorMats[i]);
    }
    
    //时间
    double duration = (cv::getTickCount() - start)/getTickFrequency();
    printf("共消耗时间%f",duration);
    waitKey();
    return 0;
}
不用mp的是这么长时间
不看算法本身的效率,在解决这个问题的时候,这种方法还是相当好用的。
 
目前方向:图像拼接融合、图像识别 联系方式:jsxyhelu@foxmail.com
目录
相关文章
|
9月前
|
存储 编解码 算法
OpenCV 图像处理学习手册:1~5
OpenCV 图像处理学习手册:1~5
113 0
|
9月前
|
openCL 开发工具 C语言
OpenCV 图像处理学习手册:6~7
OpenCV 图像处理学习手册:6~7
169 0
WK
|
6月前
|
计算机视觉 Python
如何使用OpenCV进行基本图像处理
使用OpenCV进行基本图像处理包括安装OpenCV,读取与显示图像,转换图像颜色空间(如从BGR到RGB),调整图像大小,裁剪特定区域,旋转图像,以及应用图像滤镜如高斯模糊等效果。这些基础操作是进行更复杂图像处理任务的前提。OpenCV还支持特征检测、图像分割及对象识别等高级功能。
WK
66 4
|
机器学习/深度学习 数据采集 监控
快速学完OpenCV+python计算机视觉图像处理(一)
快速学完OpenCV+python计算机视觉图像处理(一)
101 1
|
9月前
|
编解码 算法 自动驾驶
|
编解码 计算机视觉 Ruby
Python图像处理(二)opencv人脸检测
人脸检测部分,我们需要使用到opencv,看清楚,是opencv,不是opencv_python 首先,我们打开opencv的官网:opencv.org/# 当然,纯英文的。 我们找到library目录下的release目录: 选择你需要的版本,下载对应的平台就好。如下图所示,我当然要尝试最新版的了。 下载完成之后,双击安装就可以了。 我理解的人脸检测呢,其实就是opencv根据采集到的图像与其库中预置的人脸特征去比对,有符合人脸特征的,就说明采集到的图像是有人脸的。初学,我也不清楚我说的是否正确。 有不对的地方,欢迎大佬指出。
89 0
|
机器学习/深度学习 JavaScript 前端开发
快速学完OpenCV+python计算机视觉图像处理(二)
快速学完OpenCV+python计算机视觉图像处理(二)
135 1
|
存储 Linux 计算机视觉
openCV之图像处理入门
openCV之图像处理入门
102 0
|
计算机视觉 Python
图像处理本地基本类库使用
图像处理本地基本类库使用
114 0
图像处理本地基本类库使用
|
计算机视觉 Python
Python一键实现图像压缩和图像处理
Python一键实现图像压缩和图像处理
165 0

热门文章

最新文章