空间尺度分析_特征尺度的选取原则

空间尺度分析_特征尺度的选取原则特征点尺度变换高斯核是唯一可以产生多尺度空间的核,高斯模板具有圆对称性,通过高斯卷积操作对原始像素值重新分配权重,距离中心越远的相邻像素值权重分配相对较小。二维矩阵变换的高斯平滑操作可以通过在水平和竖直方向上分别进行一维高斯矩阵变换相加得到。尺度是自然客观存在的,不是主观创造的,高斯卷积只是表现尺度空间的一种形式。示例代码如下:voidCreateScaleSpace(cv::M…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

特征点尺度变换

高斯核是唯一可以产生多尺度空间的核,高斯模板具有圆对称性,通过高斯卷积操作对原始像素值重新分配权重,距离中心越远的相邻像素值权重分配相对较小。二维矩阵变换的高斯平滑操作可以通过在水平和竖直方向上分别进行一维高斯矩阵变换相加得到。尺度是自然客观存在的,不是主观创造的,高斯卷积只是表现尺度空间的一种形式。
示例代码如下:

void CreateScaleSpace(cv::Mat srcImage,
    std::vector< std::vector<Mat> > &ScaleSpace,
    std::vector< std::vector<Mat> > &DoG)
{
    cv::Size ksize(5, 5);
    double sigma; Mat srcBlurMat, up, down;
    // 高斯平滑
    GaussianBlur(srcImage, srcBlurMat, ksize, 0.5);//输入图像;输出图像;高斯核;x方向上的方差;y方向为0则与 x方向相同
    // 金字塔
    pyrUp(srcBlurMat, up);//向上采样,扩大两倍
    up.copyTo(ScaleSpace[0][0]);
    // 高斯平滑
    GaussianBlur(ScaleSpace[0][0], ScaleSpace[0][0], ksize, 1.0);
    // 图像遍历
    for (int i = 0; i < 4; i++)//四层向下采样金字塔[0,1,2,3]
    {
        // 平滑因子
        double sigma = 1.4142135;  
        for (int j = 0; j < 5+2; j++)
        {
            sigma = sigma * pow(2.0,j/2.0) ;//pow:2^(j/2)
            // 对下一尺度进行进行高斯操作
            GaussianBlur(ScaleSpace[i][j], 
                ScaleSpace[i][j+1], ksize, sigma);//根据不同的平滑因子进行平滑,做差生成特征点
            // 多尺度空间生成
            DoG[i][j] = ScaleSpace[i][j] - ScaleSpace[i][j+1];
            // cout<<"iave:"<<i<<" Scale:"<<j<<"size:"<< 
            // ScaleSpace[i][j].rows<<"x"<<ScaleSpace[i][j].cols<<endl;
        }
        // 如果不能完成,继续进行金字塔操作
        if (i < 3)//下采样生成图像金字塔
        {
            pyrDown(ScaleSpace[i][0], down);
            down.copyTo(ScaleSpace[i+1][0]);
        }
    }
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/182074.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月14日 下午2:00
下一篇 2022年10月14日 下午2:16


相关推荐

  • Vue中Vnode的创建与处理

    Vue中Vnode的创建与处理什么是虚拟 DOM 虚拟 DOM VirtualDOM 是使用 JavaScript 对象描述真实 DOMVue js 中的虚拟 DOM 借鉴 Snabbdom 并添加了 Vue js 的特征 例如 指令和组件机制为什么要使用虚拟 DOM 避免直接操作真实 DOM 提高开发效率作为一个中间层可以跨平台 支持 web 端渲染 还可以支持服务端渲染虚拟 DOM 不一定可以提高性能 首次渲染的时候会增加开销复杂视图情况下提升渲染性能 h 函数 vm createElemen atg data children

    2026年3月18日
    2
  • mycat oracle读写分离_mycat读写分离原理

    mycat oracle读写分离_mycat读写分离原理今天做不成的事,明天也不会做好。各位同学大家好,今天给大家分享一下用Mycat进行数据库的读写分离,本篇文章是基于上一篇的mysql主从复制。Linux上实现Mysql的主从复制(为Mycat读写分离作准备)在上一篇文章中,我们在两个服务器使用同版本的操作系统和mysql:服务器1:centos7.3,mysql5.6服务器2:centos7.3,m…

    2022年10月13日
    4
  • IPtables中SNAT、DNAT和MASQUERADE的含义

    IPtables中SNAT、DNAT和MASQUERADE的含义IPtables中可以灵活的做各种网络地址转换(NAT),网络地址转换主要有两种:SNAT和DNAT。SNAT是sourcenetworkaddresstranslation的缩写,即源地址目标转换。比如,多个PC机使用ADSL路由器共享上网,每个PC机都配置了内网IP,PC机访问外部网络的时候,路由器将数据包的报头中的源地址替换成路由器的ip,当外部网络的服务器比如网站web服务器接到访

    2022年6月15日
    35
  • phpMyAdmin安装教程[通俗易懂]

    phpMyAdmin安装教程[通俗易懂]phpmyadmin是一款mysql数据库管理工具,是由php编写的,可以通过互联网控制和操作mysql,通过phpmyadmin可以完全对数据库进行操作,例如建立、复制/删除数据等等。可以管理整个MySQL服务器(需要超级用户),也可以管理单个数据库,为了实现后一种,你将需要合理设置MySQL用户,他只能对允许的数据库进行读/写,那要等到你看过MySQL手册中相关的部分。

    2022年6月1日
    51
  • Python 九九乘法表(四种)

    Python 九九乘法表(四种)Python 打印九九乘法表九九乘法表用 for 循环嵌套第一种 左下角九九乘法表直接上代码 左下三角九九乘法表 forrowinrang 1 10 打印行 forcolinrang 1 row 1 打印列 print 0 1 2 2d format row col row col end amp am

    2026年3月19日
    2
  • 集群软件都有哪些_cpu集群

    集群软件都有哪些_cpu集群TableofContents一、集群简介二、集群的七大优点三、集群的分类四、常用的集群软硬件及选型介绍一、集群简介集群就是一组(若干个)相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服务器。这些服务器之间可以彼此通信,协同向用户提供应用程序、系统资源和数据。二、集群的七大…

    2022年10月15日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号