- 博客(40)
- 收藏
- 关注
转载 matlab中nargin和varargin的用法
MATLAB中的nargin与varargin的用法nargin的用法:nargin:number of function input arguments,指的是一个函数的输入变量的个数。用法:nargin或着nargin(fx), 其中fx指的是一个函数名或着函数句柄。当一个函数的参数中含有varargin变量时,这时候返回值为负。下面举例说明
2017-12-08 09:54:36
2840
1
转载 七种常见经典排序算法总结(C++实现)
七种常见经典排序算法总结(C++实现)排序算法是非常常见也非常基础的算法,以至于大部分情况下它们都被集成到了语言的辅助库中。排序算法虽然已经可以很方便的使用,但是理解排序算法可以帮助我们找到解题的方向。1. 冒泡排序 (Bubble Sort)冒泡排序是最简单粗暴的排序方法之一。它的原理很简单,每次从左到右两两比较,把大的交换到后面,每次可以确保将前M个元素的最大值移动到最
2017-07-04 21:30:00
503
转载 最长回文子串
注意, substring和subsequence 是有区别的。substring属于subsequence, 但是subsequence 不一定是substring。给定一个string T = str[0...n-1], 该字符串的一个子串substring就是截取连续的(包括全部)的一部分subT = [i, ...j], 其中, 0 and j <= n-1。 但是subseque
2017-07-04 20:33:57
510
转载 二分查找、二叉搜索
查找——折半查找(二分查找、二叉搜索)简单的折半查找方法public static int binSearch(int[] arr, int first ,int last, int target){ int mid; int midValue; while(first < last){ mid = (first + last) / 2;
2017-07-04 20:31:11
279
转载 C++ 归并排序
归并排序(merge sort)是一个时间复杂度为O(nlogn)的基于比较的排序算法(comparison based sorting algorithm)。 归并排序大多数实现(implementation)都将其实现成了一个stable sort, 所谓的stable sort的意思就是the implementation preserves the input order of equ
2017-07-04 20:25:15
476
转载 OpenCV中对数组(矩阵)的常用操作
OpenCV中对数组(矩阵)的常用操作 add矩阵加法,A+B的更高级形式,支持maskscaleAdd矩阵加法,一个带有缩放因子dst(I) = scale * src1(I) + src2(I)addWeighted矩阵加法,
2017-05-02 23:00:22
1744
1
转载 OpenCV中与matlab中相对应的函数
1、matlab中的imread相当于OpenCV中的cvLoadImage(imageName, CV_LOAD_IAMGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR):读出的图像信息保持了原有图像的信息(包括通道信息和位深信息);rgb2gray相当于cvLoadImage(imageName, CV_LOAD_IMAGE_GRAYSCALE):单通道灰度图
2017-05-02 22:59:10
555
转载 Opencv Mat矩阵点乘
Mat矩阵点乘——A*BOpenCV重载了运算符“*”,姑且称之为Mat矩阵“点乘”,其中一个重载声明为:[cpp] view plain copy print?CV_EXPORTS MatExpr operator * (const Mat& a, const Mat& b); 点乘
2017-05-02 22:58:13
1344
原创 Opencv中convertTo函数
常见问题:原Mat类型是CV_8UC1的,用Mat.convertTo(Mat,CV_64FC1)转换一下type,为什么原图像是这样的:但是转换完了却变成了这样的OpenCV的convertTo函数如果第三个参数使用默认的话,就会导致数值只是类型的改变,但在浮点数表示的颜色空间中,数值范围是0-1.0。显然按你这样调用的话,基本上所有像素都转换成大于1的浮点数
2017-04-30 10:43:29
14618
转载 C++中怎样将整型值转换为字符串
最简单的方法是使用一个字符串流(stringstream):#include#include#includeusing namespace std;string itos(int i) // 将int 转换成string{ stringstream s; s return s.str();}int main(){ int i =
2017-04-27 16:20:46
15318
翻译 Accumarray函数在c++中的实现
arma::mat accumarray (arma::mat& subs, arma::vec& val, arma::rowvec& sz){ arma::u32 ar = sz.col(0)(0); arma::u32 ac = sz.col(1)(0); arma::mat A; A.set_size(ar, ac); for (arma::u32 r
2017-04-27 15:45:52
1033
1
转载 matlab写文件与导出数据(fprintf,dlmwrite,xlswrite)
1. 用fprintf 函数写数据到txt,xlsExample:x = 0:.1:1;y = [x; exp(x)];fid = fopen('exp.txt', 'w');fprintf(fid, '%6.2f %12.8f\n', y);fclose(fid)tip:执行上述代码执行,肯定不会换行的,换行的问题试一下下面的代码x = 0:.1:1;y = [x; exp(x)
2017-04-27 13:20:27
2934
转载 k-d tree算法
k-d tree算法 k-d树(k-dimensional树的简称),是一种分割k维数据空间的数据结构。主要应用于多维空间关键数据的搜索(如:范围搜索和最近邻搜索)。应用背景 SIFT算法中做特征点匹配的时候就会利用到k-d树。而特征点匹配实际上就是一个通过距离函数在高维矢量之间进行相似性检索的问题。针对如何快速而准确地找到查询点的近邻,现在提出了很多
2017-04-26 19:18:09
319
原创 【opencv常见错误】Compiler Error: Function call with parameters that may be unsafe
Compiler Error: Function call with parameters that may be unsafe解决方案:在preprocessor define部分加上:#pragma warning( disable : 4996 ) 。未完待续
2017-04-26 16:52:59
377
转载 机器学习中的kNN算法及Matlab实例
原文转自:http://blog.youkuaiyun.com/baimafujinji/article/details/6496222一、 引言K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于
2017-04-25 17:00:45
26840
1
转载 MATLAB中accumarray函数详解
MATLAB中accumarray函数详解先看看subs和val的具体内容subs = [1 1 1; 2 1 2; 2 3 2; 2 1 2; 2 3 2];subs = 1 1 1 2 1 2 2 3 2 2 1 2 2 3 2val =
2017-04-25 14:51:41
3264
转载 Opencv常用函数
一.图像读写与简单处理1. Mat cv::imread(const String& filename, int flags=IMREAD_COLOR).imread函数加载filename图像,读入时,原始图像数据不可被修改。 flags可取的值如下:IMREAD_UNCHANGED(原始图像是什么,读入的就是什么), IMREAD_GRAYSCALE(始终将图像转换为单通道灰度
2017-04-24 15:02:34
1016
转载 OpenCV中对Mat里面depth,dims,channels,step,data,elemSize和数据地址计算的理解
OpenCV中对Mat里面depth,dims,channels,step,data,elemSize和数据地址计算的理解(转)cv::Matdepth/dims/channels/step/data/elemSizeThe class Mat represents an n-dimensional dense numerical single-channel or
2017-04-24 14:56:31
616
原创 Opencv中的数据类型
opencv中,由于使用Mat.at访问数据时,必须正确填写相应的数据类型,因此必须弄清楚opencv中的数据类型与我们常用 数据类型一一对应关系。Mat_---------CV_8UMat-----------CV_8SNat_---------CV_16SMat_--------CV_16UMat_-----------CV_32SMat_----------CV_32FMat_-------
2017-04-24 14:46:20
869
原创 Opencv中sort函数
在 MATLAB 里,返回排序后的矩阵以及对应原矩阵的索引是在 sort 一个函数搞定,但在 OpenCV 中,其功能分别被分配到了 cv::sort 和 cv::sortIdx 里,cv::sort 负责返回排序后的矩阵,cv::sortIdx 负责返回对应原矩阵的索引。还有在 MATLAB 里,1 和 2 用来分别指示是对列还是对行进行排序,'ascend' 和 'descend' 用
2017-04-21 17:17:05
13192
转载 MATLAB和Opencv中数据类型转换
最近在将一个matlab的程序导成C+opencv。在运算过程中为了精度,通常在matlab中会将图像的数据类型转换为double,而在opencv中我们通常用的数据类型都是IPL_DEPTH_8U,为了跟matlab中相统一也就是为了精度的,在opencv中发现同样也存在精度的转换函数。现总结如下:Matlab中的图像数据类型转换 MATLAB中读入图像的数据类型是uint8,而
2017-04-20 23:30:54
1791
1
原创 Opencv 学习笔记
1. cv::convertTo 类型转换并且大小缩放函数,例如将CV_8UC3类型的彩色图像(在MATLAB中对应着uint8)转换成CV_64F类型(对应MATLAB中的double类型),并且归一化处理的话,要除以图像的range :255(255-0),就可以用这个函数分别对BGR三个通道进行处理。2. cv::assignTo 类型转换函数Opencv中上述类似函数都是只适用
2017-04-20 10:04:55
614
原创 C++基础篇
1. 变量和类型 一共有4种类型,character types, numerical integer types,floating-point types,boolean type。 每种类型所占字节数:GroupType names*Notes on size / precisionCharacter typ
2017-04-11 14:28:38
216
原创 MATLAB并行运算
1. 首先打开并行运算: 在命令窗口输入:matlabpool open, 2013rb以后的MATLAB版本,matlabpool open 改成parpool2. 主要是两种:parfor模式和spmd模式。两种模式的应用都很简单。第一个中,parfor其实就是parallel+for简化而来,顾名思义啊,就是把原来程序中的for循环中的关键字forg改为parfor就OK啦。不过这是很
2017-04-10 10:11:21
1477
转载 原码、反码、补码
本文转自:http://higoge.github.io/2015/07/02/basic03/本文介绍原码、反码、补码,以及为什么要使用补码。需要了解数学的取模运算。机器数与真值机器数,即数字在计算机中的二进制表示形式。真值,第一位用+-表示数字的正负,其余为二进制数。举个栗子:-3的机器数是10000011,真值是-0000011。原码原
2017-04-04 16:51:52
416
转载 二进制,八进制,十进制,十六进制
一.本文所涉及的内容(Contents)本文所涉及的内容(Contents)背景(Contexts)进制转换算法(Convert)(二、八、十六进制) → (十进制)二进制 → 十进制八进制 → 十进制十六进制 → 十进制(十进制) → (二、八、十六进制)十进制 → 二进制十进制 → 八进制十进制 → 十六进制(二进制) ↔ (八、十六进制)二进制
2017-04-04 16:40:38
850
转载 OpenCV中Mat详解
本文转自http://blog.skyoung.org/2014/03/26/OpenCV(III)-How-to-use-Mat/Mat类是OpenCV最基本的一个数据类型,它可以表示一个多维的多通道的数组。Mat常用来存储图像,包括单通道二维数组——灰度图,多通道二维数组——彩色图。当然也可以用来存储点云,直方图等等,对于高维的数组可以考虑存储在SparseMat中。对于一个Mat对象
2017-04-04 13:17:29
743
转载 图像处理-线性滤波-3 高斯滤波器
图像处理-线性滤波-3 高斯滤波器文章转自:http://www.cnblogs.com/pegasus/archive/2011/05/20/2052031.html对于图像来说,高斯滤波器是利用高斯核的一个2维的卷积算子,用于图像模糊化(去除细节和噪声)。1. 高斯分布一维高斯分布 , 二维高斯分布 2.高斯核理论上,高斯分布在所
2017-03-31 14:25:18
528
转载 图像处理-线性滤波-2 图像微分(1、2阶导数和拉普拉斯算子)
图像处理-线性滤波-2 图像微分(1、2阶导数和拉普拉斯算子)文章转载自:http://www.cnblogs.com/pegasus/archive/2011/05/20/2051780.html更复杂些的滤波算子一般是先利用高斯滤波来平滑,然后计算其1阶和2阶微分。由于它们滤除高频和低频,因此称为带通滤波器(band-pass filters)。在介绍具体的带通滤波器前
2017-03-31 14:24:19
1339
转载 图像处理-线性滤波-1 基础(相关算子、卷积算子、边缘效应)
原文转自:http://www.cnblogs.com/pegasus/archive/2011/05/19/2051416.html这里讨论利用输入图像中像素的小邻域来产生输出图像的方法,在信号处理中这种方法称为滤波(filtering)。其中,最常用的是线性滤波:输出像素是输入邻域像素的加权和。 1.相关算子(Correlation Operator)
2017-03-31 14:21:13
622
原创 win7+64bit+VS2012下OpenBlas的编译和安装
要安装OpenBlas,首先需要用MinGW对OpenBlas进行编译,对于64bit的操作系统,我们用下述方法安装MinGW.一. Win7 64位中MinGW和MSYS的安装背景:A. 由于需要在Win7 64位系统下使用Visual Studio,并调用OpenBlas库,所以需要gcc在windows下编译该库。B. MinGW集成了众多的编译器,因此想通过安装MinG
2017-03-27 15:05:56
5676
2
转载 C++传值&传址&传指针&传引用
相关概念c++三种传递参数方式传参数的值(称值传递,简称传值),传参数的地址(称地址传递,简称为传址),和引用传递(称为传引用),相应的函数传值调用,传址调用和传引用调用形参、实参 函数定义时参数表中的参数称为形式参数,简称形参;函数调用时参数表中的参数称为实际参数,简称实参。实参和形参之间的数据传递称为形实结合
2017-03-26 20:05:32
1364
转载 static_cast, dynamic_cast, const_cast探讨
首先回顾一下C++类型转换:C++类型转换分为:隐式类型转换和显式类型转换第1部分. 隐式类型转换又称为“标准转换”,包括以下几种情况:1) 算术转换(Arithmetic conversion) : 在混合类型的算术表达式中, 最宽的数据类型成为目标转换类型。 int ival = 3;double dval = 3.14159;
2017-03-23 13:34:40
219
原创 C++迭代器iterator
1. 迭代器Iterator用于提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。一般仅用于底层聚合支持类,如STL的list、vector、stack等容器类及ostream_iterator等扩展iterator。每种数据数据容器都可以定义自己的迭代器类型。使用迭代器可以读取容器中的每一个元素。const_iterator 迭代器只能读取容器中的元
2017-03-22 16:30:47
256
转载 STL小记
STL (Standard Template Library) 提供了一些常用的数据结构和算法的模板,1998年加入C++标准。 STL中有三个重要的概念:容器:容纳各种数据类型的数据结构,是一系列的类模板。迭代器:迭代器用来迭代地访问容器中的元素。算法:用来操作容器中的元素,是一系列的函数模板。STL 容器STL中的容器定义在std命名空间下,需要引入头文件 , , ,
2017-03-22 15:32:41
240
原创 【Opencv学习(三)】获取Mat图像的ROI区域
在图像处理中,有时需要分块处理,或者只处理图像中的某一部分。因此设定图像的Region of interest 是非常重要的,可以提高效率。ROI 区域的两种定义方法:1. 使用cv::Rect.cv::Rect 表示一个矩形区域,常用的构造函数如下:Rect_ (_Tp _x, _Tp _y, _Tp _width, _Tp _height) //前两个参数表示的是所选
2017-03-21 17:04:00
31061
1
转载 Windows7+cuda 7.5+vs2010
Windows7+cuda 7.5+vs2010安装环境:os:windows7显卡:gt 740vs2010其他版本的安装配置过程类似。1.查看本机配置,查看显卡类型是否支持NVIDIA GPU选中计算机-->右键属性-->设备管理器-->显示适配器:CUDA GPUs可以查到相应显卡的compute capability;
2017-03-17 16:59:26
1897
原创 matlab中svd, svds, lansvd 函数
首先我们看一下wiki上关于奇异值分解的理论描述:1. 理论描述假设M是一个m×n阶矩阵,其中的元素全部属于域K,也就是实数域或复数域。如此则存在一个分解使得{\displaystyle M=U\Sigma V^{*},\,}其中U是m×m阶酉矩阵;Σ是m×n阶非负实数对角矩阵;而V*,即V的共轭转置,是n×n阶酉矩阵。这样的分解就称作M的奇异值分解。Σ对角线上的元
2017-03-16 15:29:17
9278
原创 【Opencv学习(二)】内存溢出和内存泄漏总结
内存溢出原因总结:1. 图像载入路径出错。 在Opencv中,图像载入路径用双斜杠,例如:"D: \\ my_image.jpg".2. 如果确认图像载入路径完全正确,那么应该考虑载入图片的深度,是什么样的图像类型。具体的类型应该是和你下面所用到的函数有关,一般而言,函数所需的输入图像格式应该和你载入的图像格式一致,否则也会出现内存溢出。3. 在写读大量图片时,例如:发
2017-03-16 11:19:15
14862
原创 【Opencv学习(一)】VideoCapture读数据内存泄漏
对于一个视频文件,如果用循环语句反复的调用VideoCapture::read(frame) 或者“>>”读图像时,会发生内存泄漏,程序崩溃。int main(){ cv::VideoCapture m_vp("D:\\testVideo.avi"); if(!m_vp.isopened) { std::cout<<"Read video failed!";
2017-03-16 11:03:11
6875
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人