// 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, _TCHAR* argv[])
{
    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, _TCHAR* argv[])
{
    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, _TCHAR* argv[])
{    
    //时间记录
    const int64 start = getTickCount();
    vector<Mat> vectorMats;
    //文件目录
    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的是这么长时间
不看算法本身的效率,在解决这个问题的时候,这种方法还是相当好用的。
 

openmp在图像处理上面的运用的更多相关文章

  1. k-develop 在ros上面的应用

    sudo apt-get install kdevelop 根据wiki上面的ros 章节中,关于kdevelop的介绍,配置好环境即可. 导入工程时,选中src/src下面的章节,不过,需要注意去掉 ...

  2. 获取Linux进程运行在哪个CPU内核上面的方法

    首先,当某些时候,在一段程序或者借助第三方软件进行程序协助的时候,在性能的优化,以及程序bug的排除上面,可能会想知道该程序执行的进程被调度到了哪一个CPU内核进行工作,从而可以推断是否是受限于硬件还 ...

  3. IQKeyboardManager在某个页面取消键盘上面的Toolbar

    使用IQKeyboardManager的时候,如果想在某个页面取消键盘上面的Toolbar,请使用如下方法,按控制器去操作 // 取消IQKeyboardManager Toolbar [[IQKey ...

  4. 抓取oschina上面的代码分享python块区下的 标题和对应URL

    # -*- coding=utf-8 -*- import requests,re from lxml import etree import sys reload(sys) sys.setdefau ...

  5. 在Eclipse中设置Java类上面的注释(包含作者、日期等)

    希望在Eclipse中,让Java类上面的注释像下面这样,改如何设置呢? 在Eclipse中,点击菜单中的Window-->Preferences,打开如下窗口:

  6. iOS 难题解决日志------2层控制器 上面的控制器显示透明

     f ([[[UIDevice currentDevice] systemVersion] floatValue]>=8.0) { nextVC.modalPresentationStyle=U ...

  7. VS2012如何更新下载TFS上面的代码到本地

    现在的代码基本上全都放在TFS上面,如何同步TFS上面的code呢? 1. Open "Team Explorer - Home" 2. Click "Source Co ...

  8. CSS实现Div透明,而显示在上面的文字不透明,但也可看到显示在下面的图片内容

    CSS实现Div透明,而显示在上面的文字不透明,但也可看到显示在下面的图片内容,DiV透明其实挺简单,主要是为background定义opacity属性,一般这个是最大值是1,数值越接近1,则越不透明 ...

  9. 动态拼接 sql的时候 里面 如果有变量的话 按上面的方式进行处理

    set @Sql_Sql = N' select top 1 @m_zw=zw,@m_zh=temp from ket where zd=''ddd'' ' print @Sql_Sql EXEC s ...

随机推荐

  1. 实验十五_安装新的int 9中断例程

    安装一个新的int 9中断例程,功能:在DOS下,按下“A”键后,除非不在松开,    如果松开,就显示满屏幕的“A”:其他的键照常处理. 提示:按下一个键时产生的扫描码称为通码,松开一个键产生的扫描 ...

  2. eclipse 改变字体大小

  3. codeforces 520 Pangram

    http://codeforces.com/problemset/problem/520/A A. Pangram time limit per test 2 seconds memory limit ...

  4. thinkphp介绍

    1.thinkphp是一个免费的开源的轻量级的高效的国产的php框架 2.现在主流的框架有:   zend framwork 框架,功能十分齐全,是php官网开发的一个框架   yii框架 十分轻巧的 ...

  5. Java Web项目里开发获取上个页面连接地址的问题

    近期做的项目有个问题,就是需要获取上个页面连接地址,我用的IE浏览器,在用location.href连接到新地址的时候,在新地址页面用document.referrer的方法获取不到原地址,我测试了下 ...

  6. ViewPager相互嵌套,导致子ViewPager无法滑动,且子ViewPager中的view无法被点击

        场景:当使用ViewPager进行嵌套的时候,子viewPager是无法进行嵌套的,因此我们要重写ViewPager类,并重写里层viewPager类中的onTouchEvent方法,调用其父 ...

  7. 多屏复杂动画CSS技巧三则(转载)

    本文转载自: 经验分享:多屏复杂动画CSS技巧三则

  8. 夺命雷公狗jquery---1选择元素的3种方法

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  9. PHPCMS V9 学习总结

    在实现PHPCMS网站过程中,根据业务需求,我们遇到很多问题,特此总结如下,以便大家参考学习. [1]PHPCMS V9系统目录简析 在研究所有问题之前,请先了解一下系统的文件目录结构,具体如下图所示 ...

  10. Python标准库之核心模块学习记录

    内建函数和异常 包括__builtin__模块和exceptions模块 操作系统接口模块 包括提供文件和进程处理功能的os模块,提供平台独立的文件名处理(分拆目录名,文件名,后缀等)的os.path ...