精华内容
下载资源
问答
  • 本文讲的是Teradata李向前:大数据平台的八大特征,在IT业界,2012年最火的是什么?无疑莫过于大数据。对于大多数企业,随着互联网、移动互联网以及企业自身应用系统的普及,企业的数据正呈现前所未有的快速增长,特别...

    本文讲的是Teradata李向前:大数据平台的八大特征,在IT业界,2012年最火的是什么?无疑莫过于大数据。对于大多数企业,随着互联网、移动互联网以及企业自身应用系统的普及,企业的数据正呈现前所未有的快速增长,特别是非结构化数据,如视频、图片、微博碎片化数据等给企业带来很大挑战。

      IDC的研究表明,2009~2020年,全球数字信息量将实现44倍的增长,其中需要管理的文件数将增加67倍,总存储容量将增长30倍。企业在PB级甚至EB级的数据中寻找相关信息无异于大海捞针,制订信息驱动决策的成本和复杂性将与日俱增。

      在这个数据量爆炸式增长的大数据时代,面对日益增长的非结构化和多结构化数据洪流的冲击,企业如何管理、分析数据,发掘数据价值并形成洞察力,已经成为企业提升竞争力的关键因素。为此,IT168日前采访了Teradata天睿公司高级解决方案顾问李向前,就当前大数据的显著特征、大数据平台应该具备的技术特征,以及大数据解决方案技术路线及趋势等进行了探讨,以飨读者。

    Teradata李向前:大数据平台的八大特征
    ▲Teradata 天睿公司高级解决方案顾问 李向前

      大数据的五大显著特征

      在谈及大数据时,李向前认为大数据对于Teradata是一个非常重大的机遇。从总体趋势来看,大数据与传统数据相比具有以下显著特点:

      第一、数据规模;

      第二、数据类型;

      第三、数据处理能力;

      第四、数据的分析方式;

      第五、数据的投资成本。

      这五方面是企业用户特别关注的关键因素。而在技术发展路线方面,李向前指出,目前大数据的技术发展路线主要分为两大类:

      第一、以Teradata为代表,在RDBMS上面引入MapReduce构建大数据分析平台。它的优势是既可以借鉴MapReduce过程并行机制的优势,同时也发挥已有MPP数据仓库并行处理的能力。

      另外,这种类型的产品已经经过多年的实践验证。比如MySpace、AT &T等都在使用Teradata Aster平台,而且商用化程度比较高,已经成为标准化的产品。

      第二、开源大数据技术路线。目前两个比较有代表性的方案就是Cloudera和Hortonworks,而国内也有服务商开始尝试走开源大数据技术路线。

      不同的服务商进行针对性论证以后,分别选择了不同的技术线路路径。例如Teradata选择了Aster路线,而有些服务商则选择了开源路线。总体来看,大数据市场的竞争还是比较激烈的。

      企业级大数据平台八大特征

      李向前向IT168记者表示,从大数据未来发展来看,大数据分析规模势必会达到PB级,这种大规模数据趋势对于Teradata来讲更多是机遇。据了解,Teradata目前在国内已经有部分客户的数据规模超过PB级,都已经迈入了PB级时代。但是,目前的大数据分析更多还是专注于企业内的结构化数据,未来移动互联网分析的数据、电子渠道数据也会融合到大数据分析的范畴之内。

      对企业来讲,他们逐步开始了大数据认识的观念转变,即由过去数据分析层面逐渐向数据资产的角度演变。李向前认为,过去数据分析是要挖掘结构化数据的价值,探索用户的行为特征。而未来,企业会把数据当作资产,可以向企业内部或者外部的各个部门,以及外部企业或第三方公司提供分析服务。

      企业既然把数据作为重要的资产来管理,就需要对数据资产进行有效性的划分。厘清有效资产,借助于大数据分析平台,去验证数据带来的价值。

      据了解,Teradata一直主张所有系统的建设都以业务价值为驱动,同时也建议用户首先在大数据平台上进行探索,先看清楚它能产生的价值,然后再考虑用什么样技术去扩展业务支撑的领域。这说明,Teradata的理念与大数据的理念是一致的。

      提到大数据分析平台,李向前认为,对于企业级用户来讲,首先是要满足业务需求,其次只有当大数据平台具备以下八大技术特征,才能够符合企业级用户的需求。

      第一、标准性

      它应该支持多个SI都可以做开发,而不应该受到限制。

      第二、易用性

      使用要简单,不改变业务的使用习惯,避免冗长的开发过程耽误营销时机。

      第三、易管理

      大数据系统的规模可能达到成千上百个节点,规模可能都在PB级以上。管理系统的挑战就更高,就需要提供集中的、便捷的管理方式,确保IT人员或者开发人员非常容易地管理系统。

      第四、高可用性

      如磁盘故障、网络故障、服务器故障等都有可能影响大数据平台的稳定性或者连续性。

      第五、成熟性

      采用商用化的成熟产品,而不是每天一个版本去升级,没有办法满足应用需要。

      第六、高效性

      现在主流的大数据分析都用到MapReduce技术,在MPP基础上,能够引入MapReduce做到过程的并行化,以实现更高的效率。

      第七、互通性

      企业内部搭建企业级数据仓库,在引入大数据分析平台后,如何形成合力满足企业分析的能力?这就需要做到两个平台互通,要能做到接入全局数据可用,做到数据的透明访问。例如,访问大数据分析平台就可以透明地访问到原有企业级数据仓库平台的数据。

      第八、安全性

      随着数据安全提高到更高的层面,必须做到敏感数据的安全管控,包括个人身份信息、地址信息等隐私或者敏感信息,在大数据分析平台也应该具备这样的能力。


      Teradata支撑企业大数据完美落地

      李向前详细地向IT168记者分享了大数据的特点、技术特征以及企业用户对于大数据的需求。那么,有着30多年数据分析经验和数据仓库产品的Teradata能够大数据时代扮演什么角色?同时,又能够提供哪些产品与服务来帮助企业实现大数据“完美”落地?

      据李向前介绍,Teradata在中国深耕电信和金融行业,同时随着业务发展,已经积极拓展到交通、航空、能源、制造等广泛领域。专注于数据仓库领域的Teradata,无论在数据仓库还是大数据分析平台都积累了丰富的经验。

      在产品方面,Teradata平台都是按照客户需求打造的专业平台,对于大数据分析需求,Teradata的Aster能够满足企业需求;对于企业级数据仓库,用户可以使用 Teradata的动态数据仓库或者部门数据仓库。总之,Teradata有不同的系列产品可以满足需求。

      “在大数据新的形势下,混搭其实已经成为非常流行的词汇。其中,我们最新的解决方案已经与Hadoop形成了混搭模式的探索,并且已经正式与Hortonworks合力深耕大数据,发挥各自擅长,发布大数据分析架构,以更好地满足企业需要。”李向前说道。

      在服务方面,Teradata一直以来坚持用两种服务满足客户需求:一是行业顾问;二是业务顾问。这两个角色都是为了给客户提供更好的帮助和服务。

      Teradata专注于数据仓库领域几十年,积累了广泛的行业知识和经验,启发客户去做主动探索。Teradata预见到大数据对企业决策的重要性,为企业提供自助式服务,这也是全球首家提出的未来分析服务方式。

      这种自助服务就是要尽量发挥业务人员和IT人员的主动性。业务人员可以基于大数据分析平台进行快速实验,利用Teradata的工具,可以非常简单地自行导入数据,将会在几秒钟或者几分钟之内获得结果来验证数据的价值。

      比如,eBay在2009年搭建了A3S(Analysis as a service)架构,其中构建Data Hub的思路其实完全就是Teradata理念的体现,所有的业务员都可以通过自助服务使用企业级的内容和数据。过去用户都是采用被动式服务,而大数据平台更多是自助服务,提供便捷化或者简单化的自助服务工具。

      另外,Teradata在大数据领域更加明显的优势是,Teradata首家允许在数据仓库平台申请自助空间。在Teradata申请账户,就可以便捷地导入外部数据,也可以看到整个企业内的已有数据,用户可以把多种数据进行结合,原有的企业数据仍然可以发挥效益,同时可以拓展新渠道的数据,整合到大数据分析平台上。自助式服务将帮助用户了解自己的数据,而且知道操作过程,并能快速获得结果响应。这些优势也体现出自助服务的两个最大特点:自助和快捷。

      针对于规模小且要求便捷性的企业,Teradata提供Aster一体机方案——大数据处理专业化平台,用以支持企业快速部署和开箱即用的模式。

      据了解,Teradata自创立伊始就坚持一体机的路线。从传统的数据仓库平台,到大数据处理平台一直都传承这样的理念。Teradata大数据处理平台,是企业数据仓库加MapReduce的架构,而其它厂商的一些产品多是选择开源路线,是做了Hadoop的产品封装。实际上,Teradata Aster在全球拥有很多客户,已经在生产环境中正式使用了,而其他产品相对来说还没有真正落地。

      Teradata Aster提供一体机解决方案,也提供另外两种解决方法:一种是云计算解决方案,企业用户可以把Aster部署到云平台上;第二种是选择Aster Software Only。作为最佳实践,一体机解决方案已经做了大量的集成、优化,后期管理成本会非常低。

      李向前指出,Teradata Aster作为大数据处理平台,具备以下三点优势:

      第一、数据规模。Aster支持数据规模可以达到PB级,已经有实践案例证明。

      第二、数据类型。Aster既支持结构化数据处理,也支持非结构化数据处理,这是它的独特之处。

      第三、分析方式。像SQL一样去写MapReduce程序。

    作者: 李伟 

    来源: IT168

    原文标题:Teradata李向前:大数据平台的八大特征

    展开全文
  • 如果利用某一个特征进行分类与随机分类结果没有很大的差别,则称这个特征是没有分类能力。这样的特征可以丢弃。常用的特征选择准则是信息增益和信息增益比。二、信息增益要了解信息增益,我们要先知道熵与条件...

    一、引言

    决策树构建过程中的特征选择是非常重要的一步。特征选择是决定用哪个特征来划分特征空间,特征选择是要选出对训练数据集具有分类能力的特征,这样可以提高决策树的学习效率。如果利用某一个特征进行分类与随机分类的结果没有很大的差别,则称这个特征是没有分类能力的。这样的特征可以丢弃。常用的特征选择的准则是信息增益和信息增益比。

    二、信息增益

    要了解信息增益,我们要先知道熵与条件熵的定义。

    2.1 熵

    熵是无序度的度量,在信息论和统计中,熵表示随机变量不确定性的度量。假设X是一个取有限值的离散型随机变量,它的概率分布如下:

    P(X=xi)=pi,i=1,2,,n

    则随机变量X的熵定义为:
    H(X)=i=1npilogpi

    pi=00log0=0,从上式中可以看到,熵只依赖于X的分布,而与X的取值没有关系。熵越大,随机变量的不确定性就越大。故可以将XH(p):

    H(p)=i=1npilogpi

    2.2 条件熵

    设有随机变量(X,Y),其联合概率分布为:

    P(X=xi,Y=yj)=pij,i=1,2,,n;j=i=1,2,,m

    条件熵H(Y|X)表示在已知随机变量X的条件下随机变量Y的不确定性。随机变量X给定的条件下随机变量Y的条件熵H(Y|X)定义为X给定条件下Y的条件概率分布的熵对X的数学期望:
    H(Y|X)=i=1npiH(Y|X=xi),pi=P(X=xi),i=1,2,,n

    当熵和条件熵中的概率由数据估计得来时,所对应的熵和条件熵称为经验熵和经验条件熵。

    2.3 信息增益

    信息增益表示得知特征X的信息而使得类Y的信息不确定性减少的程度。
    信息增益
    ADg(D,A)DH(D)ADH(D|A)

    g(D,A)=H(D)H(D|A)

    信息增益大的特征具有更强的分类能力。
    根据信息增益准则进行特征选择的方法是:对训练数据集D,计算其每个特征的信息增益,并比较它们的大小,选择最大的特征。

    三、信息增益比

    通过信息增益选取特征的时候,存在偏向于选择取值较多的特征的问题。使用信息增益比可以纠正这一问题。

    信息增益比
    ADgR(D,A)g(D,A)DAHA(D):

    gR(D,A)=g(D,A)HA(D)HA(D)=i=1n|Di||D|log2|Di||D|

    n 是特征A取值的个数。
    展开全文
  • 在此基础上,采用前向贪心搜索策略构造了基于最近邻互信息的特征算法。在两个不同基分类器和个UCI数据集上进行实验。实验结果表明:相比当前多种流行算法,该模型能够以较少的特征获得较高的分类性能。
  • 前言: 在图像中角点是一个重要局部特征,它决定了图像中关键区域形状,体现了图像中重要的特征信息,所以在目标识别、图像匹配、图像重构方面角点具有十分重要意义。 图像中角点数量远比总像素数小,如果...

    前言:

           在图像中角点是一个重要的局部特征,它决定了图像中关键区域的形状,体现了图像中重要的特征信息,所以在目标识别、图像匹配、图像重构方面角点具有十分重要的意义。 图像中角点的数量远比总像素数小,如果通过角点就能完成一些功能的话,将极大地提高处理效率。 对角点的定义一般分为以下三种:图像边界曲线上具有极大曲率值的点;图像中梯度值和梯度变化率都很高的点;图像边界方向变化不连续的点。 定义不同,角点的提取方法也不尽相同。目前,角点检测方法主要有2大类:

         1)基于图像边缘轮廓特征的方法。此方法需要经过图像预分割、轮廓链码提取和角点检测,如基于边界曲率的角点检测,基于边界小波变换的角点检测以及基于边界链码的角点检测。

         2)基于图像灰度信息的方法。此方法主要通过计算曲率及梯度进行角点检测,通过计算边缘的曲率来判断角点的存在性典型代表有Harris算法Susan算法、Moravec算法


    一、Harris算法介绍

    1.1 Harris算法原理

          Harris 是 Harris 和 Stephens 在 1988 年提出,专门针对 Moravec 算子的改进版。Harris 算子,又称 Plessey算子,它基于与 Moravec 相同的角点定义,即定义在各个方向上灰度值变化的点。与 Moravec 算子的不同之处在于局部自相关测量结果的估计方式,Moravec 算子只对八方向离散的移动方向计算灰度变化,而 Harris算子允许获得所有方向上的自相关变化( 也就是灰度,它用一个自相关函数来计算灰度信号在二维方向上具有明显变化的像素点位置,构造一个与相关函数相关的矩阵M,而通过比较矩阵M的特征值的大小可以轻松地提取到相应的角点。

           在图像中搜索有价值的特征点时,使用角点是一种不错的方法。角点是很容易在图像中定位的局部特征,并且大量存在于人造物体中(例如墙壁、门、窗户、桌子等产生的角点)。角点的价值在于它是两条边缘线的接合点,是一种二维特征,可以被精确的定位。与此相反的是位于均匀区域或物体轮廓上的点以及在同一物体的不同图像上很难重复精确定位的点。Harris特征检测就是检测角点的经典方法。接下来将详细探讨这个方法。

            如果在各个方向上移动这个小窗口,窗口内的灰度发生了较大的变化,那么说明窗口内存在角点。如果在各个方向移动,灰度几乎不变,说明是平坦区域;如果只沿着某一个方向移动,灰度几乎不变,说明是直线;如果沿各个方向移动,灰度均发生变化,说明是角点。

            设图像窗口平移,产生的灰度变化为,则:


    得:


    由于:


    于是对于局部微小的移动量,可以近似得到下面的表达:


    为二维矩阵,且:


    其中:


          其中,表示 x 方向的梯度,表示 y 方向的梯度,为高斯函数。矩阵的特征值是自相关函数的一阶曲率。特征值的大小与特征点的性质息息相关。即当两个特征值都比较小时,则此点可能位于平坦区,不为角点或边界点; 当两个特征值一个较大、而另一个却相对较小时,则此点位于边界上,属于边界

    点; 当两个特征值均相对较大时,则此点沿任意方向的曲率都较大,为需要提取的角点。

         一般地,为了避免计算矩阵的特征值,常通过下式来计算特征点的响应函数,亦称兴趣值:


           其中, 为矩阵 的行列式,为矩阵的迹,即  特征值之和。为经验值常数,一般在 0. 04 ~ 0.06 范围内取值。为了计算方便,文中采用如下角点响应函数计算兴趣值从而判定出角点,即:


          其中,ε 表示任意小的正数。显然采用这中方式计算可以避免 选择的随机性。


    1.2   Harris算法步骤

    (1)利用差分算子对图像进行滤波,并计算图像中每个像素点的 以及

    (2) 对 以及进行高斯平滑,以去除噪声此过程中可通过归一化将模板参数和置 1

    (3) 计算原图像每个对应点的兴趣值 ,并进行局部非极大值抑制;

    (4) 设定阈值,如果兴趣值大于这个阈值并且在某领域内是局部最大值,则认为该点是需要提取的角点。


    1.3 Harris算法的不足

        虽然 Harris 算法相较于其他众多基于灰度的角点提取算法具有明显的优势,但它仍然存在一些不足:
        在经典的 Harris 角点检测中,当对角点的兴趣值进行非极大值抑制来确定局部极大值的时候,角点的提取效果几乎完全由设定的阈值大小决定。而阈值的大小也与所提取的角点数量息息相关,一般情况下,阈值越大提取的角点越少,极易造成正确角点的丢失; 阈值越小提取的角点数越多,也会带来很多伪角点。因此,在运用 Harris 算法进行角点检测时,阈值这个经验值的选取和设定对角点提取具有很大的影响。


    二、代码实现

    #include <opencv2/opencv.hpp>
    #include <iostream>
    #include <math.h>
    
    using namespace cv;
    using namespace std;
    
    /************************************************/
    void ConvertBGR_img2GRAY_img(const Mat &BGR_img, Mat &Gray_img)
    {
    	//这个函数实现将彩色图转化成灰度图,利用常用公式:Gray = R*0.299 + G*0.587 + B*0.114进行自编程实现
    	//第一个参数BGR_img表示输入的彩色RGB图像的引用;    
    	//第二个参数Gray_img表示转换后输出的灰度图像的引用;                  
    	if (BGR_img.empty() || BGR_img.channels() != 3)
    	{
    		return;
    	}
    	Gray_img = Mat::zeros(BGR_img.size(), CV_8UC1);       //创建一张与输入图像同大小的单通道灰度图像  
    	uchar *pointImage = BGR_img.data;                        //取出存储图像像素的数组的指针  
    	uchar *pointImageGray = Gray_img.data;
    	int height = BGR_img.rows;
    	int width = BGR_img.cols;
    	for (int i = 0; i < height; i++)
    	{
    		for (int j = 0; j < width; j++)
    		{
    			*(pointImageGray + i*Gray_img.step[0] + j*Gray_img.step[1]) = (uchar)(0.114*(pointImage + i*BGR_img.step[0] + j*BGR_img.step[1])[0] + 0.587*(pointImage + i*BGR_img.step[0] + j*BGR_img.step[1])[1] + 0.299*(pointImage + i*BGR_img.step[0] + j*BGR_img.step[1])[2]);
    		}
    	}
    
    }
    /**********************************************/
    
    /*******************************************************/
    //非极大值抑制和阈值检测
    void LocalMaxValue(Mat &resultData, Mat &ResultImage, int kSize)
    {
    	int r = kSize / 2;
    	for (int i = r; i < ResultImage.rows - r; i++)
    	{
    		for (int j = r; j < ResultImage.cols - r; j++)
    		{
    			if (resultData.at<double>(i, j) > resultData.at<double>(i - 1, j - 1) &&
    				resultData.at<double>(i, j) > resultData.at<double>(i - 1, j) &&
    				resultData.at<double>(i, j) > resultData.at<double>(i - 1, j + 1) &&
    				resultData.at<double>(i, j) > resultData.at<double>(i, j - 1) &&
    				resultData.at<double>(i, j) > resultData.at<double>(i, j + 1) &&
    				resultData.at<double>(i, j) > resultData.at<double>(i + 1, j - 1) &&
    				resultData.at<double>(i, j) > resultData.at<double>(i + 1, j) &&
    				resultData.at<double>(i, j) > resultData.at<double>(i + 1, j + 1))
    			{
    				if ((int)resultData.at<double>(i, j) >15000)
    				{
    					circle(ResultImage, Point(j, i), 5, Scalar(0, 0, 255), 2, 8, 0);
    				}
    			}
    		}
    	}
    }
    /*********************************************************/
    
    //  主函数
    int main()
    {
    	const Mat src_img = imread("test11.png");
    	if (src_img.empty())
    	{
    		printf("could not load image...\n");
    		return -1;
    	}
    	namedWindow("原图:", CV_WINDOW_AUTOSIZE);
    	imshow("原图:", src_img);
    
    	// 将彩色图转化为灰度图,调用OpenCV提供的cvtColor接口
    	Mat gray_img;
    	ConvertBGR_img2GRAY_img(src_img, gray_img);
    	namedWindow("灰度图", CV_WINDOW_AUTOSIZE);
    	imshow("灰度图", gray_img);
    
    	// 第一步:用sobel算子计算度图像的水平和垂直方向上的差分
    	Mat image_con_sobel_Ix, image_con_sobel_Iy;
    	//image_con_sobel_Ix = sobel(gray_img,1,0, 3, BORDER_DEFAULT);
    	//image_con_sobel_Iy = sobel(gray_img,0,1, 3, BORDER_DEFAULT);
    	Sobel(gray_img, image_con_sobel_Ix, CV_64F, 1, 0, 3);
    	Sobel(gray_img, image_con_sobel_Iy, CV_64F, 0, 1, 3);
    
    	//convertScaleAbs(image_con_sobel_Ix, image_con_sobel_Ix);
    	//convertScaleAbs(image_con_sobel_Iy, image_con_sobel_Iy);
    
    	//  第二步:计算Ixx,Iyy,Ixy
    	Mat image_con_sobel_Ixx, image_con_sobel_Iyy, image_con_sobel_Ixy;
    	multiply(image_con_sobel_Ix, image_con_sobel_Ix, image_con_sobel_Ixx, 1.0, CV_64FC1);
    	multiply(image_con_sobel_Iy, image_con_sobel_Iy, image_con_sobel_Iyy, 1.0, CV_64FC1);
    	multiply(image_con_sobel_Ix, image_con_sobel_Iy, image_con_sobel_Ixy, 1.0, CV_64FC1);
    
    	//第三步:对Ixx,Iyy,Ixy进行高斯平滑
    	Mat blurimage_Ixx, blurimage_Iyy, blurimage_Ixy;
    	GaussianBlur(image_con_sobel_Ixx, blurimage_Ixx, Size(3, 3), 5);
    	GaussianBlur(image_con_sobel_Iyy, blurimage_Iyy, Size(3, 3), 5);
    	GaussianBlur(image_con_sobel_Ixy, blurimage_Ixy, Size(3, 3), 5);
    
    	//第四步:计算响应函数,为避免K值的随机性,我采用另外一种响应函数表达式
    	Mat Response_data;
    	Response_data = (blurimage_Ixx.mul(blurimage_Iyy) - blurimage_Ixy.mul(blurimage_Ixy)) / (blurimage_Ixx + blurimage_Iyy);
    
    	//第五步:非极大值抑制和阀值检测    
    	Mat ResultImage = gray_img.clone();
    	LocalMaxValue(Response_data, ResultImage, 3);
    	namedWindow("结果", CV_WINDOW_AUTOSIZE);
    	imshow("结果", ResultImage);
    	waitKey(0);
    	return 0;
    }
    

    运行程序,结果如下:


    单独观察:



    三、使用API实现Harris角点检测

       在OpenCV中提供了cornerHarris() 函数来对图像实现Harris角点检测。其函数原型和参数解析:


    其中:

    • 第一个参数,InputArray类型的src,输入图像,即源图像,填Mat类的对象即可,且需为单通道8位或者浮点型图像。
    • 第二个参数,OutputArray类型的dst,函数调用后的运算结果存在这里,即这个参数用于存放Harris角点检测的输出结果,和源图片有一样的尺寸和类型。
    • 第三个参数,int类型的blockSize,表示邻域的大小,对每个像素,考虑blockSize×blockSize大小的邻域,在邻域上计算图像的2x2梯度的协方差矩阵M。
    • 第四个参数,int类型的ksize,为Soble算子核尺寸,如果小于0,采用3×3的Scharr滤波器。
    • 第五个参数,double类型的k,为角点响应函数中的经验常数(0.04~0.06)。
    • 第六个参数,int类型的borderType,图像像素的边界模式,注意它有默认值BORDER_DEFAULT。更详细的解释,参考borderInterpolate( )函数。

    代码实现:

    #include <opencv2/opencv.hpp>
    #include <iostream>
    #include <math.h>
    
    using namespace cv;
    using namespace std;
    
    
    
    
    string out_title = "Harris角点检测";
    int thresh = 100;
    int max_count = 255;
    Mat src_img, gray_img;
    void Harris_callback(int, void*);
    
    int main()
    {
    	src_img = imread("test11.png");
    	if (src_img.empty())
    	{
    		printf("could not load image...\n");
    		return -1;
    	}
    	namedWindow("原图:", CV_WINDOW_AUTOSIZE);
    	imshow("原图:", src_img);
    	namedWindow(out_title, CV_WINDOW_AUTOSIZE);
    	cvtColor(src_img, gray_img, CV_BGR2GRAY);
    	createTrackbar("阈值", out_title, &thresh, max_count, Harris_callback);
    	Harris_callback(0, 0);
    	waitKey(0);
    	return 0;
    }
    
    void Harris_callback(int, void*)
    {
    	Mat dst_img, norm_dst_img, scale_dst_img;
    	dst_img = Mat::zeros(gray_img.size(), CV_32FC1);
    	int  blockSize = 2;
    	int ksize = 3;
    	double k = 0.04;
    	cornerHarris(gray_img, dst_img, blockSize, ksize, k, BORDER_DEFAULT);   //调用API
    	normalize(dst_img, norm_dst_img, 0, 255, NORM_MINMAX, CV_32FC1, Mat());     // 调用归一化函数进行归一化处理
    	convertScaleAbs(norm_dst_img, scale_dst_img);      //将图像转化为8位图
    	Mat result_img = src_img.clone();
    	for (int r = 0; r < result_img.rows; ++r)
    	{
    		uchar *ptr_row = scale_dst_img.ptr<uchar>(r);
    		for (int c = 0; c < result_img.cols; ++c)
    		{
    			int value = int(ptr_row[c]);
    			if (value > thresh)
    			{
    				circle(result_img, Point(c, r), 2, Scalar(0, 0, 255), 2, 8, 0);
    			}
    		}
    	}
    	imshow(out_title, result_img);
    }
    

    运行程序,结构如下:


    拖动TrackBar以获得不同阈值条件下的结果:




    展开全文
  • 例如,要表征自然场景图像,必须提取一组表示其颜色,纹理和形状信息的视觉特征。 但是,集成多峰特征以进行识别具有挑战性,因为:(1)每个特征都有其特定的统计属性和物理解释,(2)大量特征可能会导致维数的...
  • 1 理解业务背景, 收集信息 分析前期准备: 2 具体问题转化为具体需求 3 定义问题, 选择方法 分析过程: 4 梳理流程, 做足描述性统计, 特征工程 5 明确数据评判标准 6 寻找产生问题原因 7 评估...

    业务了解; 日常积累

    1 理解业务背景, 收集信息

     

    分析前期准备:

        2 具体问题转化为具体的需求

    3 定义问题, 选择方法

     

    分析过程:

        4 梳理流程, 做足描述性统计, 特征工程

    5 明确数据的评判标准

        6 寻找产生问题原因

    7 评估方案提出建议

     

    分析总结

        8 汇报总结

    转载于:https://www.cnblogs.com/binyang/p/10931366.html

    展开全文
  • 东北大学信息学院 陈东岳 魏颖 图像处理分析与识别 8.1 基本概念 8.2 边界特征的表征 8.3 边界特征的描述 8.4 区域特征的表征与描述 8.5 子空间方法 第章 图像特征提取与分析 8.1 基本概念 特征提取在视觉系统中...
  • 嘉宾介绍: 郭朝晖,现为宝钢中央研究院首席研究员、教授...长期从事信息、模型、自动控制、大数据等领域技术研发工作。 曾先后担任中国工业与应用数学学会副理事长,中国现场统计学会第届理事会理事,上海工...
  • 面向对象包含了三基本特征,即封装、继承和多态。 区别: 面向过程:强调步骤; 面向对象:强调对象。 8.1 类和对象 什么是类? 类:是一组相关属性和行为集合。可以看成是一类事物模板,使用事物...
  • 面向对象包含了三基本特征,即封装、继承和多态。 区别: 面向过程:强调步骤; 面向对象:强调对象。 8.1 类和对象 什么是类? 类:是一组相关属性和行为集合。可以看成是一类事物模板,使用事物...
  • Java笔记(

    2019-11-13 12:34:32
    面向对象的三大特征 5.4隐藏和封装 封装:将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,二是通过该类所提供的方法来实现对内部信息的操作和访问。 封装的意义:把该隐藏的隐藏起来,该暴露...
  • 视觉 SLAM 十四讲 —— 第讲 视觉里程计2 本讲主要介绍求解相机位姿... 只使用特征点丢弃了部分可能有用图像信息 相机有时会运动到特征缺失地方(一堵白墙),往往这些地方没有明显纹理信息 为了克服这
  • PCA:样本数据、减去均值、计算协方差矩阵(标准差、方差越,离散程度越)、计算特征值与特征向量、根据特征值排序保留前K个主成分特征向量、形成新数据样本。 输出数据 = 前K个特征向量组合 x 均值调整之后数据...
  • 章:可视化

    2020-12-29 14:50:36
    课时:可视化 1.可视化基本特征: ①易懂性 ②必然性 ③片面性 ④专业性 2.分类:科学可视化(标量、...4.数据安全:在实现大数据集中后,如何确保网络数据完整性、可用性和保密性,不受到信息泄漏和非法篡
  • 面向对象大特征: ​ 封装 ​ 继承 ​ 多态 封装 ​ 概念:将类一些信息隐藏在类中(私有化 private),使外部程序不能直接进行访问,只有通过该类提供专门方法才可以对这些隐藏的信息进行操作或访问; ...
  • 学生实习信息管理系统,可以用集中的数据库将与人力资源管理相关的信息全面、有机地联系起来,有效地减少了信息更新和查找中的重复劳动,保证了信息的相容性,从而大大地提高了工作效率,还能使原来不可能提供的分析...
  • 尽可能地忠实再现原始数据的所有信息的降维方法 基本原理: 和尽可能相似 =>是的正投影 <=>(m×m的单位矩阵) T通过向训练输入样本的协方差矩阵C中较的M个特征值所对应的特征向量张成的局部空间正投影...
  • 面向对象的三大特征:封装、继承、多态 1.封装 将类的某些信息封装到类的内部,不允许外部直接调用。 只能通过实例化对象,通过特定的方法,来实现对隐藏信息的操作与访问。 隐藏对象的信息,同时留出相应的接口 ...
  • python+OpenCV图像处理()边缘检测

    万次阅读 多人点赞 2018-08-08 00:25:13
    图像边缘检测幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要结构属性。有许多方法用于边缘检测,它们部分可以划分为两类:基于查找一类和基于零穿越一类。基于查找方法通过寻找...
  • 决策树原理本质是一种贪心算法,每次遍历特征值可分割点,通过基尼系数等方式计算信息增益,找到最大信息增益并以此特征分割点分割。知道最大信息增益低于阈值时停止。 随机森林使用了Bootstrap随机抽样,本质是一...
  • 词向量表示基于当前句子上下文,高层LSTM捕捉上下文特征(语义),底层LSTM捕捉句法层次信息(语法)。网络架构如下图: 其中,前向语言模型: 后向语言模型: 目标函数最大化: 优点是解决了一词多义,...
  • ID:12606859资源大小:1151KB资料简介:Python期末测试试卷(A卷)姓名:___________班级:__________... Python面向对象的特征不包括( )A. 封装B. 继承C. 多态D. 定义2. Python源代码程序编译后文件扩展名为( )。A. ...
  • beautifulsoup就是一个非常强大的工具,...利用它就不用编写正则表达式也能方便的实现网页信息的抓取 bs4简单使用 bs4是一个html的解析工具,根据html的特征和属性来查找节点 1 from bs4 import Beautiful...
  • 图像检索一.图像检索简介 一.图像检索简介 在检索原理上,无论是基于文本图像检索还是基于...为了进一步提高检索准确性,许多系统结合相关反馈技术来收集用户对检索结果反馈信息,这在CBIR中显得更为突出,因
  • RNN+CNN 两种网络相同点 ...大量信息同时存在空间特征:视频,图文相结合。 RNN+CNN应用 图片标注 图片标注升级——详细标注 densecap,使用目标探测+识别+标注loss进行训练。 使用这种方式可以捕捉
  • 模型驱动方法(场景/用例模型):整理和归类需求获取行为得到的信息,指导和组织需求获取行为的开展,为详细信息的分析提供背景基础和上下文知识。 场景:具有重点描述真实世界的特征,它利用情景、行为者之间的交互...
  • 第1章 引言 1.1 栅格的起源和发展 1.2 栅格的分类与特征 ...1.4.1 具备的八大能力 1.4.2 产生的重要作用 1.5 美军全球信息栅格GIG 1.5.1 背景与内涵 1.5.2 发展与演进 1.5.3 实质与功能 1.6 军事信息栅格F...
  • 它支持包括TF-IDF、LSA、LDA,和word2vec在内多种主题模型算法,支持流式训练,并提供了诸如相似度计算,信息检索等一些常用任务API接口。 三经典深度学习网络:CNN GAN RNN 语言模型与RNN 语言模型就是指...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 202
精华内容 80
关键字:

信息的八大特征