g*****y 发帖数: 7271 | 1 算法一般还是用C++写吧,需要速度的部分尽量避免不必要的C++中的自动
初始化,copy construction等等就可以了。真正需要优化的部分不是
靠转成C来实现的,而是可以直接call mmx/sse intrinsic 函数,或
者调用IPP等等专门优化过的基本库函数,或者采用多线程。反正C++里
做这些感觉比C里面容易多了。在C里调用个COM,搞个lock都得自己对每
个可能的branch配对release,烦都烦死了。
当然要写GPU程序,或者用GPU优化,那就不一样了。ITK/VTK 基本都是
用C++写的,有小部分用到GPU功能。
涉及到界面的部分的,有时候有用C#之类的,用Java的倒是不多见。 |
|
g*****y 发帖数: 7271 | 2 这说的在点子上,呵呵
ITK/VTK 有不少算法是基于模板的。不过如果有选择的话,我宁愿调用IPP的C函数,速
度优化的好太多了。倒不是C++写不了这么优化的函数,而是一般人都不会愿意花这个
精力针对每种数据类型,都把算法优化到极致。
要让我把自己的算法都写成IPP的C style,写一堆ippFilter_(8u,16u,16s,32f)_(1C,
3C,4C),我肯定要跳楼了。 |
|
h*****s 发帖数: 56 | 3 Thanks!
我其实是要做医学图像处理, 是不是opencv就没有优势了? |
|
N******K 发帖数: 10202 | 4 你读一下itk vtk代码 再说代码量不大这句话 |
|
N******K 发帖数: 10202 | 5 给医生用的图像分析软件也是应用系统 itk+vtk是主流 估计你没听说过
算法是这个应用系统的核心 |
|
|
N******K 发帖数: 10202 | 7 我一直想用java替代这些
但是一直没找到
如果你没听说过这几个 股沟一下 |
|
|
|
N******K 发帖数: 10202 | 10 前两个是 gui ?
前两个都是 c++ 所以用qt 自然而然
你倒是说说怎么替代? |
|
z****e 发帖数: 54598 | 11 怎么替代,你好好努力去想
让其它程序猿不再被指针所折磨是你的使命
加油 |
|
|
z****e 发帖数: 54598 | 13 用c包括c++写程序的最终目的就是让其它程序猿不再用c写程序 |
|
|
z****e 发帖数: 54598 | 15 计算机的体系就是一层一层往上封装
你现在还在琢磨如何用c写东西的话
那最好不是搞jvm这些东西的
否则你在重复造轮子 |
|
N******K 发帖数: 10202 | 16 比如 gui 你说怎么用 java的什么库 替代 qt? 达到相同效果?
我捉摸的是应用 以及适合应用的语言 而不是天天跳大神 |
|
z****e 发帖数: 54598 | 17 我干嘛要达到同样的效果?
你知道你列举的几个里面有java可以直接调用的不?
我直接call不行么?我干嘛要用java来重新写一遍?
要想谈应用,说说什么平台,ios还是pc还是mac
再说说你应用的标准是多少,人眼90帧就基本上可以了
你要实现900000帧的话,pc和mobile怕是做不了 |
|
N******K 发帖数: 10202 | 18 就事论事 别换话题
java gui vs qt |
|
z****e 发帖数: 54598 | 19 java受限于一个jvm的存在
如果你想用java来写gui的话
不是不可以,但是前提是要安装jvm
如果你真想知道怎么做
看minecraft怎么做就知道了
如果你想cutting edge,用javafx
过几天,哥给你表演一个javafx写的program好不好?
不过如果你等不急,你也可以先玩一玩
http://mysticalscenario.appspot.com/
这个我正在写,但是还没完工,平常做着玩的,你有兴趣自己去看去
控制刷新频率在90帧左右
做这个的最初目的主要是给公孙大神演示一下
java写的东西,你未必一眼就能看出来是java写的
这个论断,因为公孙大神曾经说过,java写的我一眼就能看出来
那我就做一个它一眼看不出来的demo,让他看看,呵呵 |
|
N******K 发帖数: 10202 | 20 看起来不错 不过不知能否用于finite element analysis
vtk是NIH投资搞的 用于医学图像的visualization 然后用qt提供一些按钮菜单啥的
javafx我看了一下 号称能用于医学图像 但还处于开发期 连dicom格式的reader估计都
没有
在科学计算领域 fps 不是重要指标 也不需要和硬件打交道
基本算法都是c++ 因为java数组缺陷等导致的性能问题以及缺乏相应的库。 jvm导致的速
度问题不是大问题。 有人说可以用java wrapper调用c++的库 我靠 一个算法 一部
分java 一部分c++ 到处混合 这东西没法维护和调优
然后界面Java
用户操作序列 A1 ~ A100 每一个操作对应一个算法 整个操作算一个大算法,整个程
序运行期间 java/c++频繁切换+数据格式转换 你说这种东西 维护性能好么?
所以要么干脆都是c++ 或者java
估计oracle根本不打算进入医学图像等科学计算领域
谁都知道java编程比c++省心 但是致命缺陷导致 当前版本的java不适合科学计算领域
再比如opencv 是c/c+... 阅读全帖 |
|
z****e 发帖数: 54598 | 21 很多东西都曾经是问题
就像minecraft做的那个,也曾经是很大的问题
但是随着历史的发展,那些问题不是问题any more鸟
医学图像这一块,我们这边有一个专门的major在做
我不是搞那个的,但是我多少跟那个专业的孩子一起上过课
那些个孩子人挺不错,跟我蛮投缘的
就是天天发愁工作机会,问我这边有没有机会
我说你可以考虑一下保险公司
这是工作机会的问题
然后是这样,如果你觉得jvm的数组实现有问题
你可以自己实现一个,只要你懂jvm的那些机制,反正也都是公开的
你可以自己去看,你做了,没准还能发财,你要不做
oracle万一哪天做成了,你发财的机会就没有了
甚至你都可以自己发明一个脚本
就像统计上的r和数据库的sql一样
只要你有那个本事
还是那句话
用c写程序的目的就是让其它程序猿不再需要c
所以,用c的话形象一点的说法就是给自己掘墓
赶快挖,挖快一点,挖慢了的话,来不及把自己埋进去,其它人就把你给埋了
的速 |
|
N******K 发帖数: 10202 | 22 jvm还是留给你们研究改进
啥语言能解决问题 我就用哪个 |
|
z****e 发帖数: 54598 | 23 3d图形计算,从来就不是什么省心的领域
用c写也是调用opengl那些lib,都很恶心,跟语言本身关系不是很大
现在javafx正在搞opengl的3d接口,这个要等到java8的版本才会正式下放
其实从底层调用上看,无非做了一层调用罢了
你用什么语言写都是同样的调用
然后菜单和按钮这些,那就是单独一块了
用qt写跟用javafx写有啥区别?
我没看出来这两个有捆绑到一起去讨论的必要
按钮和菜单和3d图形接口完全没啥干系
的速 |
|
N******K 发帖数: 10202 | 24 javafx 对应vtk
能否替代后者 拭目以待
我一直在想 当算法都是c++的 用java做3d图形显示或者gui 到底比vtk+qt有啥好处? |
|
z****e 发帖数: 54598 | 25 如果让你来选
opengl vs vtk
你会优先选择兼容哪一个?
不奇怪,javafx也选择了那一个 |
|
N******K 发帖数: 10202 | 26 你这个类比不对
vtk 相当于 java3d 但是图形数据结构支持的更好 比如说mesh曲面什么的 和算法的
图形数据结构无缝结合 |
|
z****e 发帖数: 54598 | 27 java3d和2d最大的问题是图形接口效率偏低的问题
尤其是以前那种破机器,嘎拉嘎拉跑得很慢
所以现在javafx提出的解决方案是优先通过调用opengl或者directx的api来优化
然后才是通过java2d和java3d的接口来搞定
这样可以用上一些硬件加速之类的
所以这是优化的办法,至于你说的无缝结合
哦,貌似网络上骂声一片,骂的远比opengl还多
opengl已经够惨痛的了
可能对你来说是无缝吧 |
|
|
z****e 发帖数: 54598 | 29 你是搞3d图形的,要问骂什么,要问你自己最好了
你自己的痛苦你自己知道,要是不懂自己去google
这么跟你说,你们痛苦在哪里我懒得认真看
但是我们现在具体到现实中的应用
主要是利用图形来呈现一些很fancy的东西给客户看
比如银行,比如政府
也就是大数据光说沒有用,光做也不够
客户不是很懂,所以最好的方式就是利用一些图形界面展示给客户看
这一点上看,以前swing控件效率偏低,而且的确比较丑
现在javafx提升了之后,感觉很不错
3d还没做,未必会做,怕太花哨了之后,以后不好维护
2d已经很让人impressive鸟
现在手头有一个项目是关于这个城市所有医院的数据的汇总后的展示
比如糖尿病和具体居住区域的关系
我现在这一套全部都是用java来做
只有少部分是html5和css3来做
any way,你难道没有发现你一开始的问题已经得到了很好的解答了么?
第三个是我回答的,第一个是你回答的
你只是觉得不够满意,那我们等java8出来之后再看你说好不好?
现在javafx还没有impl具体的3d接口,只能靠老的java3d
说了也白说,等3d接口出来之后,再看也不迟,到时候是直接访问o... 阅读全帖 |
|
|
|
N******K 发帖数: 10202 | 32 综上所述
qt+vtk+itk 为开发期间的最优选择
程序稳定成熟 可以把qt换为其他的 比如javafx+swing什么的
library
which |
|
k**********g 发帖数: 989 | 33
码工没事就不要损生物男了。
SCIFIO format plugins extend ImageJ2's capability to read and write image
data. Further, these SCIFIO plugins benefit not only ImageJ, but all other
programs using SCIFIO, such as the Insight Toolkit (ITK), which recently
released version 4.4.0 featuring integration with SCIFIO. The SCIFIO format
plugin mechanism is based on the SciJava Common library which we generalized
from ImageJ2 earlier this year. The SciJava Common framework provides a
plugin mechanism and application conta... 阅读全帖 |
|
d****i 发帖数: 4809 | 34 好像图形图像领域的lib毫无例外都是C++写的,OpenGL, OpenCV, ITK等等。这种东西
还是C++最擅长的。 |
|
N******K 发帖数: 10202 | 35 你写一个 vtk 和 itk 我就改用java了 |
|
f**********3 发帖数: 295 | 36 有JLinpack。 OpenGL, OpenCV, VTK, ITK都有Java API。要想自己从头实现那还是C++
吧。 |
|
N******K 发帖数: 10202 | 37 基本框架完成 发现一个大问题 就是 cpu 4核 8线程 根本不够快
得上GPU才行
打算把 itk的gup部分 直接ctrl-c ctrl-v
目前先用此框架 把算法搭建起来 然后换到gpu
库 |
|
g*****y 发帖数: 7271 | 38 对了,另外可以参考一下itk是怎么实现相关的算法的。反正开源的。 |
|
N******K 发帖数: 10202 | 39 std::move这个以前就有?
我说的new 是指一种编程风格 比如itk 把所有对象的都new出来 把所有的 copy
constructor 和 operator= 都给禁掉
这种风格根本不能用于矩阵库 |
|
N******K 发帖数: 10202 | 40 看一些老的代码 比如ITK 如果能用c++11写 结构会更好 更容易使用 |
|
N******K 发帖数: 10202 | 41 按照 vtk itk设计思路 方法 是和 数据分离的
不过方法都当做一个filter 是个类 |
|
N******K 发帖数: 10202 | 42 参考 vtk itk OO照样可以做data-centric
many
on
the |
|
n*w 发帖数: 3393 | 43 不熟悉vtk itk。强迫遵守一些规则oop也可以做成immutable,但一般不会这样做。 |
|
|
|
|
f*****h 发帖数: 228 | 47 给你贴了吧,大家想用都可以
#!/usr/bin/perl -w
#############################################
#Author: Jiang Li
#email: r**********[email protected]
#Creat Time: Tue 23 Oct 2012 01:37:54 PM CDT
#Vanderbilt Center for Quantitative Sciences
#############################################
use strict;
use warnings;
=pod
=head1 SYNOPSIS
Given a genbank format file (.gb), parse its feature parts (mRNA feature to
get exon regions) to get information like transcript id, gene name, etc.,
and store the result in gtf format
=he... 阅读全帖 |
|
R*********n 发帖数: 99 | 48 有意者,请发简历到:[email protected]
(function(){try{var s,a,i,j,r,c,l,b=document.getElementsByTagName("script");l=b[b.length-1].previousSibling;a=l.getAttribute('data-cfemail');if(a){s='';r=parseInt(a.substr(0,2),16);for(j=2;a.length-j;j+=2){c=parseInt(a.substr(j,2),16)^r;s+=String.fromCharCode(c);}s=document.createTextNode(s);l.parentNode.replaceChild(s,l);}}catch(e){}})();
/* ]]> */
职位名称Job Title: Researcher
上级主管Supervisor:Research Manager ... 阅读全帖 |
|
R*********n 发帖数: 99 | 49 有意者,请发简历到:[email protected]
/* */
职位名称Job Title: Researcher
上级主管Supervisor:Research Manager
部门Department: Research
地点Location: Shanghai
总体描述 Overall Description:
Responsible for research and solve the technical problem; excellent
knowledge and experience in at least 2 fields: computer vision (obligatory),
im... 阅读全帖 |
|
R*********n 发帖数: 99 | 50 有意者,请发简历到:[email protected]
(function(){try{var s,a,i,j,r,c,l,b=document.getElementsByTagName("script");l=b[b.length-1].previousSibling;a=l.getAttribute('data-cfemail');if(a){s='';r=parseInt(a.substr(0,2),16);for(j=2;a.length-j;j+=2){c=parseInt(a.substr(j,2),16)^r;s+=String.fromCharCode(c);}s=document.createTextNode(s);l.parentNode.replaceChild(s,l);}}catch(e){}})();
/* ]]> */
职位名称Job Title: Researcher
上级主管Supervisor:Research Manager ... 阅读全帖 |
|