精华内容
下载资源
问答
  • 卷积算子矩阵向量乘积表示&二维离散降质模型 在图像处理过程中,有时候我们需要将卷积运算转化为矩阵乘积运算,这也是离散降质模型构成基础,那么怎么将卷积乘法转化为矩阵向量乘法呢 。我们可以运用有关...

    @图像处理入门学习知识(一)

    卷积算子的矩阵向量乘积表示&二维离散降质模型

    在图像处理过程中,有时候我们需要将卷积运算转化为矩阵乘积运算,这也是离散降质模型构成的基础,那么怎么将卷积乘法转化为矩阵向量乘法呢 。我们可以运用有关循环矩阵Toepliz矩阵的特点来构造卷积矩阵。上一篇已经介绍了一维离散降质模型转换过程及部分代码,这一篇将继续介绍二维序列卷积怎么转化为矩阵向量乘法

    二维图像离散降质模型

    在二维离散系统中,输入信号尺寸为的二维序列f(x,y),加性噪声n(x,y)尺寸同样为AXB, 冲激响应函数h(x,y) 尺寸为CXD,为了避免各个周期重叠,将f(x,y)、n(x,y)、h(x,y)补零延拓至尺寸MXN,即(A+C-1)X(B+D-1)的矩阵序列,得到fe(x,y)、ne(x,y)、he(x,y),可表示为: fe(xy)={f(x,y),0xA1,yB10,AxM1,yN1(1.1.1)he(x,y)={h(x,y),0xC1,yD10,BxM1,yN1(1.1.2)ne(x,y)={n(x,y),0xA1,yB10,AxM1,yN1(1.1.3) \begin{array}{l} {\rm{f}}_{\rm{e}} {\rm{(x,y) = }}\left\{ \begin{array}{l} {\rm{f(x,y),0}} \le {\rm{x}} \le {\rm{A - 1},\rm{y}} \le {\rm{B - 1}} \\ {\rm{0,A}} \le {\rm{x}} \le M{\rm{ - 1},\rm{y}} \le {\rm{N - 1}}\end{array} (1.1.1) \right. \\ h_{\rm{e}} {\rm{(x,y) = }}\left\{ \begin{array}{l} {\rm{h(x,y),0}} \le {\rm{x}} \le C{\rm{ - 1},\rm{y}} \le {\rm{D - 1}} \\ {\rm{0,B}} \le {\rm{x}} \le M{\rm{ - 1},\rm{y}} \le {\rm{N - 1}} \\ \end{array}(1.1.2) \right. \\ n_{\rm{e}} {\rm{(x,y) = }}\left\{ \begin{array}{l} {\rm{n(x,y),0}} \le {\rm{x}} \le {\rm{A - 1},\rm{y}} \le {\rm{B - 1}} \\ {\rm{0,A}} \le {\rm{x}} \le M{\rm{ - 1},\rm{y}} \le {\rm{N - 1}} \\ \end{array}(1.1.3) \right. \\ \end{array}

    根据卷积定理可得,二维离散降质模型用离散卷积形式表示为
    在这里插入图片描述
    将上式卷积形式可以用矩阵向量表示为:
    g=Hf+n {\rm{\bf{g} = \bf{Hf} + \bf{n}}}
    卷积矩阵H\bf{H}he(xy)h_e(x,y)的矩阵形式, H\bf{H}为循环矩阵,上式中,g\bf{g}f\bf{f}n\bf{n}均为MN维列堆砌形成的列向量,如下:
    在这里插入图片描述
    此时降质矩阵H是一个MNXMN维的方阵,H可以表示为MXM维的分块矩阵,即:

    在这里插入图片描述

    其中每一个子矩阵Hi中为he(x,y)矩阵中的第i行向量的一维卷积矩阵,即:
    在这里插入图片描述
    若不添加噪声项n进行测试,对二维序列卷积矩阵进行验证,此时则有Hf=f(x)h(x){\bf{Hf}=f(x)*h(x)}“*”代表卷积运算,结果如下:
    输入
    在这里插入图片描述则可以得到H,X:

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    可以发现,将HX值重新排布即可等于卷积值,用Toepliz矩阵也可以取得很好的效果,下次有时间会整理Toepliz矩阵解决这种问题的基本原理及代码。

    展开全文
  • 卷积算子矩阵向量乘积表示&一维离散降质模型 在图像处理过程中,有时候我们需要将卷积运算转化为矩阵乘积运算,这也是离散降质模型构成基础,那么怎么将卷积乘法转化为矩阵向量乘法呢 。我们可以运用有关...

    @图像处理入门学习知识(一)

    卷积算子的矩阵向量乘积表示&一维离散降质模型

    在图像处理过程中,有时候我们需要将卷积运算转化为矩阵乘积运算,这也是离散降质模型构成的基础,那么怎么将卷积乘法转化为矩阵向量乘法呢 。我们可以运用有关循环矩阵Toepliz矩阵的特点来构造卷积矩阵。本文先介绍一维离散降质模型转换过程及部分代码。

    一维图像离散降质模型

    在一维离散系统中,设输入信号f(x)与加性噪声n(x)长度为A, h(x)为B点长度的冲激响应函数,为了避免各个周期重叠,将f(x)、n(x)、h(x)补零延拓至长度N≥A+B-1, 得到fe(x)、ne(x)、he(x),可表示为:
    fe(x)={f(x),0xA10,AxN1(1.1.1)he(x)={h(x),0xB10,BxN1(1.1.2)ne(x)={n(x),0xA10,AxN1(1.1.3) \begin{array}{l} {\rm{f}}_{\rm{e}} {\rm{(x) = }}\left\{ \begin{array}{l} {\rm{f(x),0}} \le {\rm{x}} \le {\rm{A - 1}} \\ {\rm{0,A}} \le {\rm{x}} \le N{\rm{ - 1}} \\ \end{array} (1.1.1) \right. \\ h_{\rm{e}} {\rm{(x) = }}\left\{ \begin{array}{l} {\rm{h(x),0}} \le {\rm{x}} \le B{\rm{ - 1}} \\ {\rm{0,B}} \le {\rm{x}} \le N{\rm{ - 1}} \\ \end{array}(1.1.2) \right. \\ n_{\rm{e}} {\rm{(x) = }}\left\{ \begin{array}{l} {\rm{n(x),0}} \le {\rm{x}} \le {\rm{A - 1}} \\ {\rm{0,A}} \le {\rm{x}} \le N{\rm{ - 1}} \\ \end{array}(1.1.3) \right. \\ \end{array}
    根据卷积定理可得,一维离散降质模型用离散卷积形式表示为:
    ge(x)=fe(x)he(x)+ne(x)=0N1fe(n)fe(xn)+ne(x)(1.1.4) g_{\rm{e}} (x) = {\rm{f}}_{\rm{e}} (x) * h_{\rm{e}} (x) + n_{\rm{e}} (x) = \sum\limits_0^{N - 1} {f_{\rm{e}} (n)} f_{\rm{e}} (x - n) + n_{\rm{e}} (x) (1.1.4) 式中,x=0,1,2,···,N-1。将上式(1.1.4)卷积形式用矩阵向量表示为:
    g=Hf+n {\rm{\bf{g} = \bf{Hf} + \bf{n}}}
    卷积矩阵H\bf{H}he(x)h_e(x)的矩阵形式, H\bf{H}为循环矩阵,上式中,g\bf{g}f\bf{f}n\bf{n}均为N维列向量,如下:

    在这里插入图片描述
    若不添加噪声项n进行测试,此时则有Hf=f(x)h(x){\bf{Hf}=f(x)*h(x)}“*”代表卷积运算,结果如下:

    在这里插入图片描述

    matlab代码:

    
    function [M,X] = TMtx1(x,h)%一维离散降质模型 
    [m1,n1]=size(x); %n1为x的元素个数
    [m2,n2]=size(h); %n2为h的元素个数
    N=n1+n2-1;       %补零延拓,避免周期重叠产生误差
    x(N)=0;
    x(N)=0;
    h(N)=0;
    x1=x;
    h1=h;
    % 构建延拓矩阵 N
    x2 = x1(:);
    h2 = h1(:); 
    %% 循环矩阵方法一
    t=zeros(1,N);
    t(1)=h2(1);
    t(1,2:N)=h2(N:-1:2);
    M = toeplitz(h2,t);
    X = x1(:);
    %% 方法二 循环矩阵
    % A=zeros(N,N);
    % A(1,1)=h2(1);
    % A(1,2:N)=h2(N:-1:2);
      %第一行
    %  for i=2:N            %i为行数
    %      A(i,1)=A(i-1,N);  %第i行的第一列与最后一列的关系
    %      A(i,2:N) =A(i-1,1:N-1); % 第i行的第其他列与上一行的关系
    %  end       
    end  
    
    
    
    展开全文
  • 两个向量的夹角解法--VC

    千次阅读 2012-11-29 10:09:03
    解析几何(一)两个向量的夹角解法 最近在项目中需要判断点和四边形关系,我的算法中涉及到了求解线段夹角的问题,于是编写了如下代码。... = arccos( 两向量之积 / 两向量模的乘积 )   1 #inclu
    
    
    最近在项目中需要判断点和四边形关系,我的算法中涉及到了求解线段夹角的问题,于是编写了如下代码。

    问题描述
    平面坐标系中,已知三点坐标,求出任意两点组成的线段之间的夹角。
     

    使用向量夹角公式
    cos<夹角> = 两向量之积 / 两向量模的乘积
    <夹角> = arccos( 两向量之积 / 两向量模的乘积 )
     
     1 #include <cmath>
     2   using std::acos; // 反余弦函数
     3   using std::sqrt; // 平方根函数
     4 //---------------------------------------------------------------------------
     5 
     6 // 点结构体的定义
     7   struct TPoint : public POINT
     8   {
     9     TPoint() {}
    10     TPoint(int _x, int _y) { x = _x; y = _y; }
    11     TPoint(POINT & pt)
    12     {
    13       x = pt.x;
    14       y = pt.y;
    15     }
    16   };
    17 //---------------------------------------------------------------------------
    18 
    19 double getAngle(TPoint pSrc, TPoint p1, TPoint p2)
    20 {
    21         double angle = 0.0f; // 夹角
    22 
    23 // 向量Vector a的(x, y)坐标
    24         double va_x = p1.x - pSrc.x;
    25         double va_y = p1.y - pSrc.y;
    26 
    27  // 向量b的(x, y)坐标
    28         double vb_x = p2.x - pSrc.x;
    29         double vb_y = p2.y - pSrc.y;
    30 
    31         double productValue = (va_x * vb_x) + (va_y * vb_y);  // 向量的乘积
    32         double va_val = sqrt(va_x * va_x + va_y * va_y);  // 向量a的模
    33         double vb_val = sqrt(vb_x * vb_x + vb_y * vb_y);  // 向量b的模
    34         double cosValue = productValue / (va_val * vb_val);      // 余弦公式
    35 
    36 // acos的输入参数范围必须在[-1, 1]之间,否则会"domain error"
    37 // 对输入参数作校验和处理
    38         if(cosValue < -1 && cosValue > -2)
    39                 cosValue = -1;
    40         else if(cosValue > 1 && cosValue < 2)
    41                 cosValue = 1;
    42 
    43  // acos返回的是弧度值,转换为角度值
    44         angle = acos(cosValue) * 180 / M_PI; 
    45 
    46         return angle;
    47 }
    48 //---------------------------------------------------------------------------
    附录

    acos函数的介绍

    Header File
     
    math.h 
     
    Category
     
    Math Routines
     
    Prototype
     
    double acos(double x);
     
    long double acosl(long double x);
     
    Description
     
    Calculates the arc cosine.
     
    acos returns the arc cosine of the input value. 
     
    acosl is the long double version; it takes a long double argument and returns a long double result.
     
    Arguments to acos and acosl must be in the range -1 to 1, or else acos and acosl return NAN and set the global variable errno to:
     
    EDOM  Domain error
     
    Return Value
    展开全文
  • 问题描述 平面坐标系中,已知三点坐标,求... = 两向量之积 / 两向量模的乘积 <夹角> = arccos( 两向量之积 / 两向量模的乘积 ) 1 #include <cmath> 2 using std::acos; // 反余弦函数 3 using st...
    问题描述
    平面坐标系中,已知三点坐标,求出任意两点组成的线段之间的夹角。
     

    使用向量夹角公式
    cos<夹角> = 两向量之积 / 两向量模的乘积
    <夹角> = arccos( 两向量之积 / 两向量模的乘积 )
     
     1 #include <cmath>
    2 using std::acos; // 反余弦函数
    3 using std::sqrt; // 平方根函数
    4 //---------------------------------------------------------------------------
    5
    6 // 点结构体的定义
    7 struct TPoint : public POINT
    8 {
    9 TPoint() {}
    10 TPoint(int _x, int _y) { x = _x; y = _y; }
    11 TPoint(POINT & pt)
    12 {
    13 x = pt.x;
    14 y = pt.y;
    15 }
    16 };
    17 //---------------------------------------------------------------------------
    18
    19 double getAngle(TPoint pSrc, TPoint p1, TPoint p2)
    20 {
    21 double angle = 0.0f; // 夹角
    22
    23 // 向量Vector a的(x, y)坐标
    24 double va_x = p1.x - pSrc.x;
    25 double va_y = p1.y - pSrc.y;
    26
    27 // 向量b的(x, y)坐标
    28 double vb_x = p2.x - pSrc.x;
    29 double vb_y = p2.y - pSrc.y;
    30
    31 double productValue = (va_x * vb_x) + (va_y * vb_y); // 向量的乘积
    32 double va_val = sqrt(va_x * va_x + va_y * va_y); // 向量a的模
    33 double vb_val = sqrt(vb_x * vb_x + vb_y * vb_y); // 向量b的模
    34 double cosValue = productValue / (va_val * vb_val); // 余弦公式
    35
    36 // acos的输入参数范围必须在[-1, 1]之间,否则会"domain error"
    37 // 对输入参数作校验和处理
    38 if(cosValue < -1 && cosValue > -2)
    39 cosValue = -1;
    40 else if(cosValue > 1 && cosValue < 2)
    41 cosValue = 1;
    42
    43 // acos返回的是弧度值,转换为角度值
    44 angle = acos(cosValue) * 180 / M_PI;
    45
    46 return angle;
    47 }
    48 //---------------------------------------------------------------------------
    附录

    acos函数的介绍

    Header File
     
    math.h 
     
    Category
     
    Math Routines
     
    Prototype
     
    double acos(double x);
     
    long double acosl(long double x);
     
    Description
     
    Calculates the arc cosine.
     
    acos returns the arc cosine of the input value. 
     
    acosl is the long double version; it takes a long double argument and returns a long double result.
     
    Arguments to acos and acosl must be in the range -1 to 1, or else acos and acosl return NAN and set the global variable errno to:
     
    EDOM  Domain error
     
    Return Value
     
    acos and acosl of an argument between -1 and +1 return a value in the range 0 to pi. Error handling for these routines can be modified through the functions _matherr_matherr and _matherrl.

    转载于:https://www.cnblogs.com/carekee/articles/2397485.html

    展开全文
  • matlab编程之求向量的模

    千次阅读 2020-06-22 08:24:16
    1、求乘积 2、求和 3、开平方 disp('&&&&&&&...%用*向量,得到一个一对一相乘的向量% s=sum(ff); t=sqrt(s) 如果运行报错话,我建议clear所有变量! ...
  • 问题: 两个向量,求解一个向量旋转到另一个向量的角度,逆... # 2个向量模的乘积 TheNorm = np.linalg.norm(v1) * np.linalg.norm(v2) # 叉乘 rho = np.rad2deg(np.arcsin(np.cross(v1, v2) / TheNorm)) # 点乘
  • 由于标准支持向量机算法需要解一个二次规划问题,当训练样本较多时,其运算速度一般很慢,为了提高运算速度,根据不同准则,提出了基于核函数3种支持向量回归模型。基于使残差平方和为最小准测模型转化为...
  • 用向量的积除以向量模的乘积,在求其反函数, 然后转换为角度就可以知道其角度为多少了; 向量的模的乘积怎么算: sqrt(x^2+y^2); 向量的乘积 x1*x2+y1*y2; */ #include<iostream> #include<cmath&...
  • 几何意义:一个向量长度和它在另一个向量投影长度的乘积。 叉乘、向量积 叉乘是向量积,记作a×b,a×b=|a|·|b|sinθ,其中|a|、|b|是两向量,θ是两向量之间的夹角(0≤θ≤π).以上a与b均为向量。 |向量c|...
  • 点乘叉乘

    2018-04-13 10:13:47
    (既然都说是点了,返回的就应该是标量)两个向量模的乘积再乘以它们夹角的cos叉乘,也叫向量积。结果是一个和已有两个向量都垂直的向量。(都交叉相乘了,返回的应该是向量)两个向量模的乘积再乘以它们夹角的sin,...
  • 为了实现组织病理图像特征表示, 提出一种基于专家乘积系统(PoE)特征提取算法, 利用最大似然和蒙特卡罗随机采样方法训练对应不同图像类别PoE模型, 将图像样本在所有模型下响应相连作为其特征向量。...
  • 点乘又叫向量的内积、数量积,是一个向量和它在另一个向量上的投影的长度的乘积;是标量。  点乘反映着两个向量的“相似度”,两个向量越“相似”,它们的点乘越大。 向量的叉乘:a ∧ b a ∧ b = |a| * |b|...
  • 向量的点击、叉积、混合积(Matlab)

    千次阅读 2019-06-07 23:44:52
    两个向量的点积等于一个向量与另一个向量在这个向量方向上的投影的乘积。 x1=[2 9 8 7]; x2=[6 5 1 4]; %两向量维度必须一致 y=dot(x1,x2); %93 2. 向量的叉积运算 两个向量的交点,并与此两向量所在的...
  • 这里说移动匹配:就是把模板图像在原图像上进行移动,让后计算彼此之间灰度值乘积的累加和。 向量匹配:就是把原图像、模板图像看做矩阵向量,让后把这两个向量进行点积运算,其结果是表示两个向量的方向一致性...
  • 【ACM】向量的叉乘(求面积)

    千次阅读 2017-01-14 15:09:41
    乘积的方向垂直于这两个向量构成平面,大小表示这两个向量构成平行四边形面积。假设OP1=(x1,y1,z1),OP2=(x2,y2,z2),OP1 X OP2 = (y1z2-y2z1)i + (x2z1-x1z2)j + (x1y2-x2y1)k因此叉乘的模为 |OP1 X...
  • 两个向量的点积等于一个向量与另一个向量在这个向量方向上的投影的乘积。 clear; x1=[1 2 3 4,5]; x2=[6 7 8 9 10]; %两向量维度必须一致 y=dot(x1,x2); %130 2. 向量的叉积运算 两个向量的交点,并与此两...
  • 第一章是讲向量,还算比较好理解。...这里涉及到复数的性质,pQp-1的模就是分出来三个模的乘积。q-1就是 q的共轭除以q的平方 四元数的设计十分巧妙,证明也会相对复杂,感兴趣可以自行查看3D游戏与计算机图...
  • 点乘比较简单,是相应元素的乘积的和: V1( x1, y1, z1)·V2(x2, y2, z2) = x1*x2 + y1*y2 + z1*z2; 注意结果不是一个向量,而是一个标量(Scalar)。点乘有什么用呢,我们有: A·B = |A||B|Cos(θ) θ是向量A和...
  • 计算机图形学-向量

    2018-03-05 10:04:57
    又称为向量的范数或者长度记作||V||向量的规格化,就是将向量V的变为单位长度,即V乘以1/||V||向量的性质:1.2 点积两个向量做点积的结果等于向量的每个对应的分量的乘积之和。最终结果是个标量。也可以...
  • 而相应的特征向量和准则权值向量的乘积,则表示配用电业务的综合业务权重,反映了配用电业务的重要性。在配用电通信网的智能资源分配过程中,优先给业务权重较大的业务分配资源;仿真结果表明了该方案可以提高配用电...
  • opencv实现矩形检测

    2020-12-17 09:31:18
    本文实例为大家分享了opencv实现矩形检测的...//函数功能:用向量来做COSα=两向量之积/两向量模的乘积求两条线段夹角 //输入: 线段3个点坐标pt1,pt2,pt0,最后一个参数为公共点 //输出: 线段夹角,单位为角度 ////
  • 【opencv】矩形检测

    万次阅读 2016-04-07 13:55:49
    #include "cv.h" #include "highgui.h" #include #include #include ///////////////////////////////////////////////////////////////...//函数功能:用向量来做COSα=两向量之积/两向量模的乘积求两条线段夹角 //
  • 点乘在实际运算中,计算公式是:u点乘v=u.x*v.x+u.y*v.y点乘在几何上有对应的公式:u点乘v=u的*v的*uv夹角的cos值它的几何意义是:u的长度与v在u上的投影长度的乘积,它是一个标量,而且可正可负。如果将向量...
  • 我们考虑在2 n维Kähler流形X上向量束上的连接的Hermitian Yang-Mills(instanton)方程,这是p维和q维黎曼流形Y和Z的乘积Y×Z,p + q = 2n 。 我们显示出,在绝热极限中,当按Z方向的度量按比例缩小时,Y×Z上的...
  • 向量空间模型(Vector Space Model)

    千次阅读 2006-09-11 13:10:00
    向量空间模型(Vector Space Model)M个无序特征项ti ,词根/词/短语/其他每个文档dj可以用特征项向量来表示...如果向量一直就是1,如果正交就是0,符合相似度百分比的特性,余玄的计算方法为,向量内积/各个向量模的乘积.2

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 167
精华内容 66
关键字:

向量模的乘积