matlab函数

Opencv中reshape函数

烂漫一生 提交于 2019-12-10 10:09:41
在opencv中,reshape函数比较有意思,它既可以改变矩阵的通道数,又可以对矩阵元素进行序列化,非常有用的一个函数。 函数原型: C++: Mat Mat::reshape(int cn, int rows=0) const 参数比较少,但设置的时候却要千万小心。 cn: 表示通道数(channels), 如果设为0,则表示保持通道数不变,否则则变为设置的通道数。 rows: 表示矩阵行数。 如果设为0,则表示保持原有的行数不变,否则则变为设置的行数。 首先设置一个初始矩阵:一个20行30列1通道的一个矩阵 int main() { Mat data = Mat(20, 30, CV_32F); //设置一个20行30列1通道的一个矩阵 cout << "行数: " << data.rows << endl; cout << "列数: " << data.cols << endl; cout << "通道: " << data.channels() << endl; system("pause"); return 1; } 输出: 第一次变化:通道数不变,将矩阵序列化1行N列的行向量。 int main() { Mat data = Mat(20, 30, CV_32F); //设置一个20行30列1通道的一个矩阵 cout << "行数: " << data.rows <<

MATLAB实现图像的代数运算

风流意气都作罢 提交于 2019-12-10 09:18:41
文章目录 2.利用imlincomb函数将图像的灰度值放大1.5倍 3.利用imlincomb函数计算两幅图像的平均值。 4.图像的加法运算 5.利用imnoise函数对噪声进行相加运算 6.图像的减法运算 7.利用两种函数去图像的相减值和绝对值 8.降低R图像的亮度 9.图像的乘法运算 10.图像的除法运算 图像的代数运算在图像处理中有着广泛的应用,它除了可以实现自身所需的算数操作,还能为许多复杂的图像处理提供准备。例如,图像减法就可以用来检测同一场景或物体生成的两幅或多副图像的误差。可以使用MATLAB基本算数符(﹢、﹣、·、/)来执行图像的算数操作,但在此之前必须将图像转换为适合进行基本操作的双精度类型。在MATLAB中,图像运算函数无需再进行数据类型之间的转换,这些函数能够接受uint8和uint16的数据,并且返回相同格式的图像结果。 下表是一个常见的MATLAB图像运算函数集合。 常见的MATLAB图像运算函数 函数名 功能描述 Imabsdiff 用于计算两幅图像的绝对差值 imcomplement 用于补足一幅图像 imlincomb 用于计算两幅图像的线性组合 图像的代数运算函数使用以下截取规则使运算结果符合数据范围的要求:超出数据范围的整形数据将被截取为数据范围的极值,分数结果将被四舍五入。无论进行哪一种代数运算都要保证两幅输入图像的大小相等,且类型相同。 ##

Matlab fmincon函数用法

给你一囗甜甜゛ 提交于 2019-12-10 01:58:49
这个函数在之前优化工具箱一文中已经介绍过,由于其应用广泛,所以这里通过实例单独整理一下其用法。 一、基本介绍 求解问题的标准型为 min F(X) s.t AX <= b AeqX = beq G(x) <= 0 Ceq(X) = 0 VLB <= X <= VUB 其中X为n维变元向量,G(x)与Ceq(X)均为非线性函数组成的向量,其它变量的含义与线性规划,二次规划中相同,用Matlab求解上述问题,基本步骤分为三步: 1. 首先建立M文件fun.m定义目标函数F(X): function f = fun(X); f = F(X) 2. 若约束条件中有非线性约束:G(x) <= 0 或 Ceq(x) = 0,则建立M文件nonlcon.m定义函数G(X)和Ceq(X); function [G, Ceq] = nonlcon(X) G = ... Ceq = ... 3. 建立主程序,非线性规划求解的函数时fmincon,命令的基本格式如下: 其形式如下:x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon) 求解问题的标准型为 min F(X) s.t AX <= b(线性不等式约束) AeqX = beq(线性等式约束) G(x) <= 0(非线性不等式约束) Ceq(X) = 0(非线性等式约束) lb <= X <= ub(变量约束)

MATLAB实现图像的代数运算

爱⌒轻易说出口 提交于 2019-12-09 16:51:02
目录 1.使用求补运算对各类图像进行处理 2.利用imlincomb函数将图像的灰度值放大1.5倍 3.利用imlincomb函数计算两幅图像的平均值。 4.图像的加法运算 5.利用imnoise函数对噪声进行相加运算 6.图像的减法运算 7.利用两种函数去图像的相减值和绝对值 8.降低R图像的亮度 9.图像的乘法运算 10.图像的除法运算 @ 图像的代数运算在图像处理中有着广泛的应用,它除了可以实现自身所需的算数操作,还能为许多复杂的图像处理提供准备。例如,图像减法就可以用来检测同一场景或物体生成的两幅或多副图像的误差。可以使用MATLAB基本算数符(﹢、﹣、·、/)来执行图像的算数操作,但在此之前必须将图像转换为适合进行基本操作的双精度类型。在MATLAB中,图像运算函数无需再进行数据类型之间的转换,这些函数能够接受uint8和uint16的数据,并且返回相同格式的图像结果。 下表是一个常见的MATLAB图像运算函数集合。 常见的MATLAB图像运算函数 函数名 功能描述 Imabsdiff 用于计算两幅图像的绝对差值 imcomplement 用于补足一幅图像 imlincomb 用于计算两幅图像的线性组合 图像的代数运算函数使用以下截取规则使运算结果符合数据范围的要求:超出数据范围的整形数据将被截取为数据范围的极值,分数结果将被四舍五入

scala akka 修炼之路6(scala函数式柯里化风格应用场景分析)

╄→尐↘猪︶ㄣ 提交于 2019-12-07 06:18:44
胜败兵家事不期,包羞忍耻是男儿——斗牛士fighting,fighting,fighting... 小象学习和使用scala也一段时间了,最初小象学习scala主要为了学习spark生态,但是深入学习scala的一些特性后,深深被scala函数式和面向对象的风格所折服,不得不赞美设计这门语言的设计者。小象大学阶段在使用MATLAB做数据分析和自动化设计时,就非常喜欢使用MATLAB的命令行和面向矩阵运算的风格编写分析代码;喜欢使用java编写层次化和清晰的模块接口,而这些Scala语言设计中都有很好的设计。不得不说 scala的函数式和面向对象风格,可以让想想随时发生;如果你是画家,使用scala写出来的代码更像一幅充满诗意的风景画。如果你是作家,写出的将是一个扣人心弦的跌宕起伏的大篇。scala给不同类型的程序员不同的体验和感受。而使用scala函数式柯里化风格,可以编写出更加抽象,功能化和高效的函数式代码。 小象在定义主函数功能的时候常常出现这种情况,函数体中的代码越写越长,本来可以拆分的功能,由于写代码的时候逻辑思绪根本停不下来,不愿意中途打断去定义那些繁琐的辅助函数,往往一个函数就一路走到头,最后使主函数代码段很长,不便理解,功能复杂,需要后期慢慢拆分功能。小象在学习使用scala函数式柯里化风格后,在思绪停不下来又需要拆分功能的时候

使用AI算法进行手写数字识别

a 夏天 提交于 2019-12-06 16:31:14
人工智能   人工智能(Artificial Intelligence,简称AI)一词最初是在1956年Dartmouth学会上提出的,从那以后,研究者们发展了众多理论和原理,人工智能的概念也随之扩展。由于人工智能的研究是高度技术性和专业的,各分支领域都是深入且各不相通的,因而涉及范围极广 。 人工智能的核心问题包括建构能够跟人类似甚至超越人类的推理、知识、学习、交流、感知、使用工具和操控机械的能力等,当前人工智能已经有了初步成果,甚至在一些影像识别、语言分析、棋类游戏等等单方面的能力达到了超越人类的水平 。   人工智能的分支领域非常多,主要有演绎推理、知识表示、规划、学习、自然语言处理……等十多个分支领域,而以机器学习为代表的“学习”领域,是目前研究最广泛的分支之一。 机器学习    机器学习(Machine Learning)是人工智能的一个分支,它是实现人工智能的一个途径,即以机器学习为手段解决人工智能中的问题。机器学习在近30多年已发展为一门多领域交叉性的学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。    机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法,该算法是一类从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法。 深度学习   深度学习(Deep Learning)是机器学习的分支,是一种以人工神经网络为架构

Matlab中imagesc用法

 ̄綄美尐妖づ 提交于 2019-12-06 10:11:56
来源:https://ww2.mathworks.cn/help/matlab/ref/imagesc.html?searchHighlight=imagesc&s_tid=doc_srchtitle imagesc 显示使用经过标度映射的颜色的图像 全页折叠 语法 imagesc(C) imagesc(x,y,C) imagesc('CData',C) imagesc('XData',x,'YData',y,'CData',C) imagesc( ___,Name,Value) imagesc( ___,clims) imagesc(ax, ___) im = imagesc( ___) 说明 示例 imagesc( C ) 将数组 C 中的数据显示为一个图像,该图像使用颜色图中的全部颜色。 C 的每个元素指定图像的一个像素的颜色。生成的图像是一个 m × n 像素网格,其中 m 和 n 分别是 C 中的行数和列数。这些元素的行索引和列索引确定了对应像素的中心。 示例 imagesc( x , y , C ) 指定图像位置。使用 x 和 y 可指定与 C(1,1) 和 C(m,n) 对应的边角的位置。要同时指定两个边角,请将 x 和 y 设置为二元素向量。要指定第一个边角并让 imagesc 确定另一个,请将 x 和 y 设为标量值。图像将根据需要进行拉伸和定向。 imagesc

matlab中set用法

空扰寡人 提交于 2019-12-06 10:06:03
来源:https://www.cnblogs.com/sddai/p/5467500.html 1.MATLAB给每种对象的每一个属性规定了一个名字,称为属性名,而属性名的取值成为属性值。例如,LineStyle是曲线对象的一个属性名,它的值决定着线型,取值可以是'-' 、':'、'-.'、'--'或'none'。 2.属性的操作 set函数的调用格式为: set(句柄,属性名1,属性值1,属性名2,属性值2,…) 例子: clear x=0:0.2:12; y1=bessel(1,x); y2=bessel(2,x); y3=bessel(3,x); h=plot(x,y1,x,y2,x,y3); set(h,{'LineWidth'},{2;5;8}) %set(h,{'LineWidth'},{2})==set(h,'LineWidth',2),将所有线宽设置为2 set(h,{'Color'},{'r';'g';'b'},{'LineStyle'},{'--';':';'-.'}) %设置颜色和线宽 axis([0 12 -0.5 1]) %设置坐标轴范围 grid on X=0:1:12; Y=-0.5:0.25:1; set(gca,'xtick',X,'ytick',Y) %设置网格的显示格式,gca获取当前figure的句柄 set(xlabel('Time'),

神经网络反向传播算法

喜你入骨 提交于 2019-12-06 05:22:46
反向传播算法是求代价函数小时参数θ的一种算法。 以监督学习为例,假设我们有训练样本集 ,那么神经网络算法能够提供一种复杂且非线性的假设模型 ,它具有参数 ,可以以此参数来拟合我们的数据。 为了描述神经网络,我们先从最简单的神经网络讲起,这个神经网络仅由一个“神经元”构成,以下即是这个“神经元”的图示: 这个“神经元”是一个以 及截距 为输入值的运算单元,其输出为 ,其中函数 被称为“激活函数”。在本教程中,我们选用sigmoid函数作为激活函数 可以看出,这个单一“神经元”的输入-输出映射关系其实就是一个逻辑回归(logistic regression)。 虽然本系列教程采用sigmoid函数,但你也可以选择双曲正切函数(tanh): 以下分别是sigmoid及tanh的函数图像 函数是sigmoid函数的一种变体,它的取值范围为 ,而不是sigmoid函数的 。 注意,与其它地方(包括OpenClassroom公开课以及斯坦福大学CS229课程)不同的是,这里我们不再令 。取而代之,我们用单独的参数 来表示截距。 最后要说明的是,有一个等式我们以后会经常用到:如果选择 ,也就是sigmoid函数,那么它的导数就是 (如果选择tanh函数,那它的导数就是 ,你可以根据sigmoid(或tanh)函数的定义自行推导这个等式。 神经网络模型 所谓神经网络就是将许多个单一“神经元

Matlab geom3d函数注释

你离开我真会死。 提交于 2019-12-06 03:11:55
Matlab geom3d函数解析 geom3d函数库 geom3d库的目的是处理和可视化三维几何原语,如点、线、平面、多面体等。它提供了操作三维几何原语的底层功能,使得开发更复杂的几何算法变得更加容易。 | 序号 | 函数名 | 作用 | 输入 | 输出 | | --- | --- | --- | --- | --- | | 1 | area = triangleArea3d(pt1, pt2, pt3) | 获取三角形面积 | 三个点坐标 [10 10 10], [30 10 10], [10 40 10] | 面积 | | 2 | area = polygonArea3d(poly, varargin) | 获取三维多边形的面积 | 点的坐标向量poly = [10 30 20;20 30 20;20 40 20;10 40 20] | 面积 | | 3 | centroid = polygonCentroid3d(varargin) | 获取三维多边形的中点 | 点坐标 poly = [0 0 0; 10 0 10;10 10 20;0 10 10] | 点坐标 | | 4 | point = projPointOnPlane(point, plane) | 点在平面上的正交投影 | 点坐标[ x,y,z]和平面点、两个向量 [X0 Y0 Z0 VX1 VY1 VZ1