
软件配置
k雪痕
这个作者很懒,什么都没留下…
展开
-
CNS网络GPU加速配置步骤
本次测试是在Win7 64位操作系统上完成,安装盘均是默认的系统盘C,其它路径可以参照修改,其中采用的编译器是VS2010版本。附录中有NVIDIA支持GPU加速的芯片型号。1. 安装 CUDA driver and CUDA toolkitCUDA driver 安装地址:http://www.geforce.com/drivers选择自动检测GPU型号然后下载驱动。原创 2014-11-05 11:06:17 · 2609 阅读 · 0 评论 -
利用dlopen,dlsym对动态库进行类封装
在程序编写中会使用已有的动态库,如何对这些库函数进行类打包管理,便于后面引用,这是本文要解决的问题。本文分为三步:建立一个简单的动态库、对该动态库进行类封装、测试封装的动态库。本测试在ubuntu 14.04LTS系统上完成。1.建立一个简单的动态库源代码如下:头文件 fun.hppextern "C" int add(int a, int b);extern "C" int s原创 2016-03-07 15:33:42 · 1396 阅读 · 0 评论 -
利用opencv保存复杂结构的数据
在做图像处理算法测试的时候往往会用到复杂的数据结构来保存最终的处理结果。本文介绍如何使用opencv的FileStorage类实现这一个目的,该功能的实现主要包含三个部分:数据保存、压缩、读取。如果数据量较小的时候可以去除压缩这一步。 FileStorage类有两种组织数据的方法,分别是"{" "}"、"[" "]"两种符号对。"{" "}"符号对,要求期间的每个数据都要有自己的数据名原创 2016-01-31 16:01:32 · 1034 阅读 · 1 评论 -
读取PNG颜色索引数据
在某些应用中,可能需要PNG图片每个像素颜色索引值。如在目标检测中,VOC2012数据库中对每个目标类进行了分割标注,不同类别分别采用不同的颜色索引值。如0 表示背景, 1表示飞机等。opencv中的imread函数可以直接读出png RGB颜色信息,但是不能读出每个像素的颜色索引值。所以,本文给出了一个读取png图片每个像素颜色索引的函数。该函数依赖libpng库,并且和opencv相结合,利用原创 2016-01-27 18:56:26 · 5488 阅读 · 4 评论 -
ubuntu 14.04 下安装Armadillo库 (依赖库使用ubuntu专用版本)
在以前的博客中讲过通过通过自己编译依赖库的方式安装Armadillo。但是在使用过程中会出现错误,所以这里记录了一种更简单的安装方式。该安装方式直接采用编译好的ubuntu下的openblas、lapack、arpack库文件,所以安装过程很简单,并且最终运行的结果很完美。下面是以前自己编译安装方式网址:ubuntu 14.04 下安装Armadillo库 进行稀疏矩阵特征分解如果对u原创 2015-12-15 22:15:49 · 4174 阅读 · 0 评论 -
pkg-config工具包程序编译中的使用
当程序依赖的外部库文件和头文件相对比较多时,每次建立工程都需要对这些库文件进行配置,这个过程比较繁琐,所以pkg-config工具包被开发出来,解决这一个问题。本文主要介绍如何使用pkg-config工具包,并给出opencv和Armadillo软件库才用pkg-config配置的例子。本文实在ubuntu14.04的基础上进行测试。1. 安装pkg-config工具包如果ubuntu系统原创 2015-10-22 10:31:22 · 1150 阅读 · 0 评论 -
ubuntu 14.04 下安装Armadillo库 进行稀疏矩阵特征分解
图像处理中往往会遇到大型稀疏矩阵的特征值分解问题,如果采用一般的密集矩阵求解方法,对内存要求比较大。所以在稀疏矩阵的基础上进行特征值分解,更加合理。opencv2.49版本中还没有对稀疏矩阵的特征值分解函数,所以自己对此类问题进行了网上搜索。调研了ietl、lapack、Armadillo、Eigen这类库。文章先对各种库进行总结,后面在详细的介绍Armadillo库在ubuntu14.04系统上原创 2015-10-21 17:25:28 · 4406 阅读 · 0 评论 -
利用matlab获取算法源代码
在matlab2011以后版本,matlab加入了从m函数获取源代码的功能,可以将m文件专为C语言、C++语言。下面是从2015a matlab中使用coder工具的过程。1.首先利用mex -setup命令设置matlab的编译器,直接选择C++即可。2.在命令窗口中输入coder回车,即可打开coder工具。下面是获取imextendmin函数源代码方法原创 2015-09-16 14:20:29 · 3604 阅读 · 0 评论 -
ostream 保存数据出现乱码原因之一
程序跑完之后,往往需要将结果保存为txt格式,有的时候保存完成后,会出现乱码问题。一般能想到的原因就是txt编辑器编码不合适的问题,除此之外还有一种常常被忽略的原因是我们保存时数据处理不正确。字符型数据按照但字节数据进行保存时,如果字符型数据保存的是不能被正常显示的ASCII值,读该文件时便会出现乱码现象。下面是数据处理不正确导致乱码的例子。要解决这个问题,只要将字符型数据强制转换为整型数据即可。原创 2015-09-01 20:22:47 · 1670 阅读 · 0 评论 -
opencv多通道数据和多维数据的区别
opencv中经常要用到多通道矩阵来处理彩色图像,同时多维度的矩阵在opencv中也会经常遇到,这里对这两种数据结构做一个对比。总体来说,对这两种数据结构opencv在处理上是不同的,主要是数据的存储安排上不同。多通道数据仍然是按照二维数据的方式来存放数据,不过于正常的二维矩阵相比较,单个元素包含了多个数据值如B、G、R。而多维矩阵是多个层级的二维矩阵组合而成。下面是一些细节对比,和该结论的依据。原创 2015-08-12 17:27:03 · 3137 阅读 · 0 评论 -
ubuntu系统下cmake 编译matlab中mex文件
cmake 编译工程具有独特的优势,特别对于复杂的工程更是如此。利用matlab直接编译mex文件时,对于文件数据多的工程时,需要列举所有文件,并且要按照依赖关系排序,这些都是直接采用matalb编译mex的缺点。下面通过一个简单的加法函数例子,说明如何利用cmake编译生成mex文件。如何对系统动态库进行设置,使matlab能够正常调用mex函数。首先说明如何生成mex文件。本例原创 2015-05-19 22:47:39 · 4856 阅读 · 0 评论 -
opencv K邻近分类器的使用
利用Mat数据类型训练Opencv K邻近分类器,下面是手册中给出的K邻近分类器使用的例子,该例子是以CvMat形式实现的。通过下面的例子可以知道如何使用Opencv自带的分类器、矩阵数据如何访问、如何画图、如何使用Opencv的随机数生成函数等内容。在第二个例子中已将这些代码部分做了注释。原创 2014-12-17 19:14:18 · 968 阅读 · 0 评论 -
opencv 矩阵元素不同获取方式及其效率对比
opencv 矩阵数据Mat元素获取有四种方式: 直接获取、模板方式、行指针方式、元素地址方式。测试代码如下:#includeint main( int argc, const char** argv ){ //矩阵总共获取次数 uint32_t num = 10000; Mat m(100, 100, CV_64F, Scalar(0)); //定原创 2016-04-15 14:38:00 · 965 阅读 · 0 评论