sift算法搭建(上半部,五,求二阶三阶黑塞矩阵的逆程序对比,c#实现)

先看二阶黑塞矩阵:

       private void 二阶黑塞矩阵的逆(ref double a,ref double c,ref double b,ref double d)
        {//未考虑bc-ad==0
            //因为黑塞矩阵的逆*黑塞矩阵=单位矩阵
            //a c*AA CC=1  0
            //b d BB DD 0  1

            //a*AA+c*BB=1;
            //b*AA+d*BB=0;
            aa=-d/(bc-ad);bb=b/(bc-ad)
            //a*cc+c*dd=0;
            //b*cc+d*dd=1;
            ///cc=c/(bc-ad);dd=-a/(bc-ad);
            //所以a c*1/(bc-ad)*-d   c= 1   0
            //    b d            b  -a  0   1
            double tempa=0; double tempb=0; double tempc=0; double tempd=0;
            double 系数=1.0/(b*c-a*d);
            tempa=系数*(-d);
            tempc = 系数 * (c);
            tempb = 系数 * (b);
            tempd = 系数 * (-a);
            a = tempa; b = tempb; c = tempc; d = tempd;
           
        }

注意:返回的逆黑塞矩阵值覆盖了原来的黑塞矩阵

再看三阶黑塞矩阵:

    bool 黑塞矩阵三阶的逆(ref double a, ref double b, ref double c, ref double d, ref double e, ref double f, ref double g, ref double h, ref double i)
        {
            double 矩阵的值 = a * e * i + b * f * g + c * d * h - a * f * h - b * d * i - c * e * g;
            if (0 == 矩阵的值) return false;
            double 新a = e * i - h * f; 新a = 新a / 矩阵的值;
            double 新b = b * i - h * c; 新b = -新b / 矩阵的值;
            double 新c = b * f - c * e; 新c = 新c / 矩阵的值;
            double 新d = f * g - i * d; 新d = 新d / 矩阵的值;
            double 新e = c * g - i * a; 新e = -新e / 矩阵的值;
            double 新f = c * d - a * f; 新f = 新f / 矩阵的值;
            double 新g = d * h - g * e; 新g = 新g / 矩阵的值;
            double 新h = a * h - g * b; 新h = -新h / 矩阵的值;
            double 新i = a * e - b * d; 新i = 新i / 矩阵的值;
            a = 新a;
            b = 新b;
            c = 新c;
            d = 新d;
            e = 新e;
           f = 新f;
           g = 新g;
            h = 新h;
           i = 新i;
           return true;
        }

调用三阶:注意:返回的逆黑塞矩阵值覆盖了原来的黑塞矩阵

    bool hello=  黑塞矩阵三阶的逆(ref dxx,ref dxy,ref dxs,ref dxy,ref dyy,ref dys,ref dxs,ref dys,ref dss);//二阶导数的值全改变,要注意

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值