‘壹’ 求 java语言 如何提取图像颜色特征和颜色直方图的方法
java.awt.Color 类用于封装默认 sRGB 颜色空间中的颜色,或者用于封装由 ColorSpace
标识的任意颜色空间中的颜色。每种颜色都有一个隐式的 alpha 值 1.0,或者有一个在构造方法中提供的显式的 alpha 值。alpha
值定义了颜色的透明度,可用一个在 0.0 - 1.0 或 0 - 255 范围内的浮点值表示它。alpha 值为 1.0 或 255
则意味着颜色完全是不透明的,alpha 值为 0 或 0.0 则意味着颜色是完全透明的。在使用显式的 alpha 值构造 Color
时,或者在获取某个 Color 的颜色/alpha 分量时,从不将颜色分量预乘 alpha 分量。
希望可以帮助到你.
‘贰’ KNIME是什么
Knime是基于Eclipse的开源数据挖掘软件,它通过工作流的方式来完成数据仓库以及数据挖掘中数据的抽取-转换-加载操作。
‘叁’ 如何成为一个数据分析师需要具备哪些技能
数据分析师的职位要求 :
1、计算机、统计学、数学等相关专业本科及以上学历;
2、具有深厚的统计学、数据挖掘知识,熟悉数据仓库和数据挖掘的相关技术,能够熟练地使用SQL;
3、三年以上具有海量数据挖掘、分析相关项目实施的工作经验,参与过较完整的数据采集、整理、分析和建模工作;
4、对商业和业务逻辑敏感,熟悉传统行业数据挖掘背景、了解市场特点及用户需求,有互联网相关行业背景,有网站用户行为研究和文本挖掘经验尤佳;
5、具备良好的逻辑分析能力、组织沟通能力和团队精神;
6、富有创新精神,充满激情,乐于接受挑战。
1、态度严谨负责
严谨负责是数据分析师的必备素质之一,只有本着严谨负责的态度,才能保证数据的客观、准确。在企业里,数据分析师可以说是企业的医生,他们通过对企业运营数据的分析,为企业寻找症结及问题。一名合格的数据分析师,应具有严谨、负责的态度,保持中立立场,客观评价企业发展过程中存在的问题,为决策层提供有效的参考依据;不应受其他因素影响而更改数据,隐瞒企业存在的问题,这样做对企业发展是非常不利的,甚至会造成严重的后果。而且,对数据分析师自身来说,也是前途尽毁,从此以后所做的数据分析结果都将受到质疑,因为你已经不再是可信赖的人,在同事、领导、客户面前已经失去了信任。所以,作为一名数据分析师就必须持有严谨负责的态度,这也是最基本的职业道德。
2、好奇心强烈
好奇心人皆有之,但是作为数据分析师,这份好奇心就应该更强烈,要积极主动地发现和挖掘隐藏在数据内部的真相。在数据分析师的脑子里,应该充满着无数个“为什么”,为什么是这样的结果,为什么不是那样的结果,导致这个结果的原因是什么,为什么结果不是预期的那样等等。这一系列问题都要在进行数据分析时提出来,并且通过数据分析,给自己一个满意的答案。越是优秀的数据分析师,好奇心也越不容易满足,回答了一个问题,又会抛出一个新的问题,继续研究下去。只有拥有了这样一种刨根问底的精神,才会对数据和结论保持敏感,继而顺藤摸瓜,找出数据背后的真相。
3、逻辑思维清晰
除了一颗探索真相的好奇心,数据分析师还需要具备缜密的思维和清晰的逻辑推理能力。我记得有位大师说过:结构为王。何谓结构,结构就是我们常说的逻辑,不论说话还是写文章,都要有条理,有目的,不可眉毛胡子一把抓,不分主次。
通常从事数据分析时所面对的商业问题都是较为复杂的,我们要考虑错综复杂的成因,分析所面对的各种复杂的环境因素,并在若干发展可能性中选择一个最优的方向。这就需要我们对事实有足够的了解,同时也需要我们能真正理清问题的整体以及局部的结构,在深度思考后,理清结构中相互的逻辑关系,只有这样才能真正客观地、科学地找到商业问题的答案。
4、擅长模仿
在做数据分析时,有自己的想法固然重要,但是“前车之鉴”也是非常有必要学习的,它能帮助数据分析师迅速地成长,因此,模仿是快速提高学习成果的有效方法。这里说的模仿主要是参考他人优秀的分析思路和方法,而并不是说直接“照搬”。成功的模仿需要领会他人方法精髓,理解其分析原理,透过表面达到实质。万变不离其宗,要善于将这些精华转化为自己的知识,否则,只能是“一直在模仿,从未超越过”。
5、勇于创新
通过模仿可以借鉴他人的成功经验,但模仿的时间不宜太长,并且建议每次模仿后都要进行总结,提出可以改进的地方,甚至要有所创新。创新是一个优秀数据分析师应具备的精神,只有不断的创新,才能提高自己的分析水平,使自己站在更高的角度来分析问题,为整个研究领域乃至社会带来更多的价值。现在的分析方法和研究课题千变万化,墨守成规是无法很好地解决所面临的新问题的。
技能要求:
1、懂业务。
从事数据分析工作的前提就会需要懂业务,即熟悉行业知识、公司业务及流程,最好有自己独到的见解,若脱离行业认知和公司业务背景,分析的结果只会是脱了线的风筝,没有太大的使用价值。
2、懂管理。
一方面是搭建数据分析框架的要求,比如确定分析思路就需要用到营销、管理等理论知识来指导,如果不熟悉管理理论,就很难搭建数据分析的框架,后续的数据分析也很难进行。另一方面的作用是针对数据分析结论提出有指导意义的分析建议。
3、懂分析。
指掌握数据分析基本原理与一些有效的数据分析方法,并能灵活运用到实践工作中,以便有效的开展数据分析。基本的分析方法有:对比分析法、分组分析法、交叉分析法、结构分析法、漏斗图分析法、综合评价分析法、因素分析法、矩阵关联分析法等。高级的分析方法有:相关分析法、回归分析法、聚类分析法、判别分析法、主成分分析法、因子分析法、对应分析法、时间序列等。
4、懂工具。
指掌握数据分析相关的常用工具。数据分析方法是理论,而数据分析工具就是实现数据分析方法理论的工具,面对越来越庞大的数据,我们不能依靠计算器进行分析,必须依靠强大的数据分析工具帮我们完成数据分析工作。
5、懂设计。
懂设计是指运用图表有效表达数据分析师的分析观点,使分析结果一目了然。图表的设计是门大学问,如图形的选择、版式的设计、颜色的搭配等等,都需要掌握一定的设计原则。
‘肆’ 急求用JAVA写的HSV颜色直方图的颜色特征提取的代码
一种非常简单而有效的颜色特征使由Stricker 和Orengo所提出的颜色矩(color moments) 这种方法的数学基础在于图像中任何的颜色分布均可以用它的矩来表示。此外,由于颜色分布信息主要集中在低
阶矩中,因此仅采用颜色的一阶矩(mean)、二阶矩(variance)和三阶矩(skewness)足以表达图像的颜色分布。与颜色直方图相比,该方法的另一个好处在于无需对特征进行向量化。因此,图像的颜色矩一共只需要9个分量(3个颜色分量,每个分量上3个低阶矩),与其他的颜色特征相比是非常简洁的。在实际应用中为避免低次矩较弱的分辨能力,颜色矩常和其它特征结合使用,而且一般在使用其它特征前起到过滤缩小范围(narrow down)的作用。
‘伍’ 如何查看unix 的java内存使用情况
jmap (linux下特有,也是很常用的一个命令)
观察运行中的jvm物理内存的占用情况。
参数如下:
-heap :打印jvm heap的情况
-histo: 打印jvm heap的直方图。其输出信息包括类名,对象数量,对象占用大小。
-histo:live : 同上,但是只答应存活对象的情况
-permstat: 打印permanent generation heap情况
命令使用:
jmap -heap 3409
可以观察到New Generation(Eden Space,From Space,To Space),tenured generation,Perm Generation的内存使用情况
输出内容:
jmap -histo 3409 | jmap -histo:live 3409
可以观察heap中所有对象的情况(heap中所有生存的对象的情况)。包括对象数量和所占空间大小。
输出内容:
写个脚本,可以很快把占用heap最大的对象找出来,对付内存泄漏特别有效。
如果结果很多,可以用以下命令输出到文本文件。
jmap -histo 3409 | jmap -histo:live 3409 > a.txt
jinfo:可以输出并修改运行时的java 进程的opts。
jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。
jstat:一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。
jmap:打印出某个java进程(使用pid)内存内的所有'对象'的情况(如:产生那些对象,及其数量)。
jconsole:一个java GUI监视工具,可以以图表化的形式显示各种数据。并可通过远程连接监视远程的服务器VM。
详细:在使用这些工具前,先用JPS命令获取当前的每个JVM进程号,然后选择要查看的JVM。
jstat工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id,和所选参数。以下详细介绍各个参数的意义。
jstat -class pid:显示加载class的数量,及所占空间等信息。
jstat -compiler pid:显示VM实时编译的数量等信息。
jstat -gc pid:可以显示gc的信息,查看gc的次数,及时间。其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。
jstat -gccapacity:可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小,如:PGCMN显示的是最小perm的内存使用量,PGCMX显示的是perm的内存最大使用量,PGC是当前新生成的perm内存占用量,PC是但前perm内存占用量。其他的可以根据这个类推, OC是old内纯的占用量。
jstat -gcnew pid:new对象的信息。
jstat -gcnewcapacity pid:new对象的信息及其占用量。
jstat -gcold pid:old对象的信息。
jstat -gcoldcapacity pid:old对象的信息及其占用量。
jstat -gcpermcapacity pid: perm对象的信息及其占用量。
jstat -util pid:统计gc信息统计。
jstat -printcompilation pid:当前VM执行的信息。
除了以上一个参数外,还可以同时加上 两个数字,如:jstat -printcompilation 3024 250 6是每250毫秒打印一次,一共打印6次,还可以加上-h3每三行显示一下标题。
jmap是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。
命令:jmap -mp:format=b,file=heap.bin
file:保存路径及文件名
pid:进程编号
?jmap -histo:live pid| less :堆中活动的对象以及大小
?jmap -heap pid : 查看堆的使用状况信息
jinfo:的用处比较简单,就是能输出并修改运行时的java进程的运行参数。用法是jinfo -opt pid 如:查看2788的MaxPerm大小可以用 jinfo -flag MaxPermSize 2788。
jconsole是一个用java写的GUI程序,用来监控VM,并可监控远程的VM,非常易用,而且功能非常强。使用方法:命令行里打 jconsole,选则进程就可以了。
JConsole中关于内存分区的说明。
Eden Space (heap): 内存最初从这个线程池分配给大部分对象。
Survivor Space (heap):用于保存在eden space内存池中经过垃圾回收后没有被回收的对象。
Tenured Generation (heap):用于保持已经在 survivor space内存池中存在了一段时间的对象。
Permanent Generation (non-heap): 保存虚拟机自己的静态(refective)数据,例如类(class)和方法(method)对象。Java虚拟机共享这些类数据。这个区域被分割为只读的和只写的,
Code Cache (non-heap):HotSpot Java虚拟机包括一个用于编译和保存本地代码(native code)的内存,叫做“代码缓存区”(code cache)
?jstack ( 查看jvm线程运行状态,是否有死锁现象等等信息) : jstack pid : thread mp
?jstat -gcutil pid 1000 100 : 1000ms统计一次gc情况统计100次;
另外推荐一款查看jmap mp 的内存对象工具 MemoryAnalyzer