在这个博客。我想分享一下OpenCV源代码CPU指令系统CV_SSE2和其他相关知识

一个、
   CV_SSE系列指令集的预编译符号定义在opencv2/core/internal.hpp这个头文件里,假设你不包括这个头文件的话。把源代码复制到自己的函数中,CV_SSE是不被定义的
以下是harrisCorner中的一部分代码


在上述代码中。假设条件编译符号CV_SSE被定义过,则调用checkHardwareSupport(CV_CPU_SSE); 获取你的电脑上的CPU是否支持CPU_SSE指令集优化特性。

假设查询结果为真,就说明你的CPU在当前状态下支持CPU_SSE指令集优化特性。

假设查询结果为假。就说明你的CPU不支持CPU_SSE指令集优化。可是这并不说明你的CPU硬件本身不支持SSE指令集优化特性。



二、
CPU指令集优化功能能够依据须要开启或关闭:
首先能够使用此函数 
         
bool cv::useOptimized()
        来查询当前是否开启了CPU指令集优化功能。
        能够使用函数
                       void cv::setUseOptimized(bool onoff)
来设置是否开启CPU指令集优化功能;
        能够使用此函数
 bool checkHardwareSupport(int feature);
                     来查询你的CPU是否支持某种指令集优化特性。

 feature的取值有下面几种:
          
请看一下代码:

在上述代码中,假设setUseOptimized()函数的參数为true的话,则CPU的硬件指令优化功能被开启。状态函数opt_status = cv::useOptimized()返回为真,
 并且在上述代码中我们查询了我的机器的CPU指令优化支持特性,我的CPU型号为Inter Core(TM) i5 650 的。查询结果显演示样例如以下:

能够看到,我的CPU支持绝大多数的指令集优化特性。仅仅有最后一个CPU_AVX是0,虽然我们用程序指令开启了指令集优化特性,可是CPU_AVX依旧是0,这就说明我的CPU在硬件层面上不提供CPU_AVX的优化功能,即使setUseOptimized()函数的參数为true。也无法使用此功能。
假设setUseOptimized()函数的參数为false的话,则CPU的硬件指令优化功能被关闭。状态函数opt_status = cv::useOptimized()返回为假。上述代码的执行结果为


能够看到,此时全部的CPU指令集优化功能都被禁止了,即使CPU硬件本身支持的特性,也被禁止使用了。


所以在你的程序中,你能够在main()主函数中通过setUseOptimized()功能设置是否启用OpenCV指令集的优化

版权声明:本文博客原创文章。博客,未经同意,不得转载。

OpenCV五学习: 如何使用命令来启动或关闭OpenCV的CPU指令系统CV_SSE2,CV_SSSE4和其他优化的更多相关文章

  1. Oracle安装完成后,如何用命令行启动和关闭数据库?

    Oracle安装完成后,如何用命令行启动和关闭数据库? 解答: 打开:STARTUP [FORCE] [RESTRICT] [PFILE= filename] [OPEN [RECOVER][ dat ...

  2. 用cmd命令来 启动和关闭 SqlServer

    cmd命令 启动and关闭 sql数据库服务 (1)先用以管理员身份打开你的cmd窗口. (2)后输入以下对应的命名. 如下: 启动SQLSERVER NET START MSSQLSERVER 暂停 ...

  3. mysql在windows下命令行启动与关闭服务

    一.命令行关闭与启动服务的命令: 二.运行cmd的命令行程序时,必须以管理员身份运行.否则会出现如下提示: 三.mysql5.7版本的服务名一般默认为mysql57,因此如果使用服务名mysql,那么 ...

  4. Oracle的启动与关闭

    启动数据库的前提条件: 环境变量定义好($ORACLE_HOME,$ORACLE_SID,$PATH) 能密码文件认证或OS认证(确保能登入sys) 有正确的参数文件(启动数据库需要查找参数文件,默认 ...

  5. (转)redis 学习笔记(1)-编译、启动、停止

    redis 学习笔记(1)-编译.启动.停止   一.下载.编译 redis是以源码方式发行的,先下载源码,然后在linux下编译 1.1 http://www.redis.io/download 先 ...

  6. OpenCV入门学习笔记

    OpenCV入门学习笔记 参照OpenCV中文论坛相关文档(http://www.opencv.org.cn/) 一.简介 OpenCV(Open Source Computer Vision),开源 ...

  7. Apache Commons CLI官方文档翻译 —— 快速构建命令行启动模式

    昨天通过几个小程序以及Hangout源码学习了CLI的基本使用,今天就来尝试翻译一下CLI的官方使用手册. 下面将会通过几个部分简单的介绍CLI在应用中的使用场景. 昨天已经联系过几个基本的命令行参数 ...

  8. 变身windows达人,用运行命令直接启动所有应用程序

    先看一下效果 在”运行“输入QQ,敲回车即打开登录窗口,相当于双击QQ登录快捷方式,对于码农.电脑一族这是不是一件高逼格,很酷的事?你甚至可以将任何你想设置命令启动的程序用该方式启动,比如敲chrom ...

  9. memcached学习笔记——存储命令源码分析上篇

    原创文章,转载请标明,谢谢. 上一篇分析过memcached的连接模型,了解memcached是如何高效处理客户端连接,这一篇分析memcached源码中的process_update_command ...

随机推荐

  1. php内存分析

    1.一般来说,php倒不需要进行内存分析,但是遇到大循环时内存吃紧时就得要进行内存分析了,看看在哪里吃掉了内存. $m1 = memory_get_usage(); $m2 = memory_get_ ...

  2. iOS图片拉伸技巧-李明杰分享

    http://bbs.itcast.cn/thread-21436-1-1.html 本文目录 "一.iOS5.0之前------------------------------------ ...

  3. SQLite数据库框架ORMLite与GreenDao的简单比较

    笔记摘要:最近准备使用数据库做个缓存,以前因为项目中的实时性要求比较高,所以在整体的框架中就没有加缓存,有些地方只 是简单的将对象保存到了Preference中,所以并没有对数据库方面有所研究,既然准 ...

  4. cocos2d-x游戏开发系列教程-中国象棋00-前言

    象棋描述 在说代码之前,我们先让象棋效果登场,以方便大家对代码的理解 欢迎界面 中国象棋程序,运行起来的第一个界面是一个欢迎界面,该欢迎界面在停留一秒后进入游戏界面 游戏主界面 新局:所有棋子归位,状 ...

  5. 京东金融集团BD部门招聘 BD经理

    新标签页http://74.55.154.136/ 互联网招聘_cnBeta.COM 北京 / 全职 / 20k-30k / 经验3-5年 / 本科及以上 / 1天前发布 职位诱惑 : 五险一金 职位 ...

  6. Flexigrid折行显示问题

    上会写的Flexigrid折行显示时,获取值有问题,报错. getRows: function(){ //add by jej var rtnList = new Array(); var objRo ...

  7. C#中对文件的操作

    详细介绍参考:http://blog.csdn.net/wangyue4/article/details/4616801 源码举例: public class FileSystemManager { ...

  8. Got a packet bigger than 'max_allowed_packet' bytes With statement Mysql终端数据同步不成功解决办法

    在做两个数据库数据拷贝的时候,遭遇 1153 - Got a packet bigger than 'max_allowed_packet' bytes With statement: 遇到这个问题, ...

  9. QUrl不同版本之间的坑

    在项目中使用了native application + html的方式构建界面. 之前在4.8.4用QUrl直接加载相对路径一点问题都没有.但是切换到5.1编译之后却发现本地的html文件全部没有加载 ...

  10. libevent简单介绍和使用

    <pre class="html" name="code">libevent接口的使用是简单easy的.关键还是一些其他技术须要深入了解.如epol ...