Vaa3D与Qt简要介绍(入门教程)

20 篇文章 0 订阅
8 篇文章 0 订阅

教程1:编译Vaa3D

分为在windows、mac、ubuntu等系统上编译。
原始教程
https://github.com/Vaa3D/Vaa3D_Wiki/wiki/Build-Vaa3D-on-Linux

编译时一些问题的教程
https://blog.csdn.net/jujiyu6446/article/details/84590792
https://blog.csdn.net/DOGIMA/article/details/89671537

教程2:认识Vaa3D

Vaa3D是开源项目,所有代码开源。
0.基本主界面 https://blog.csdn.net/jujiyu6446/article/details/95058263
1.Vaa3d新建工程,打开pro文件后仅出现pro文件,不出现其他cpp和h文件,或者不能跳转,可以尝试以下方法。
https://blog.csdn.net/jujiyu6446/article/details/84798983

2.Vaa3d中神经元重建结果颜色对照图,NeuronTree的type所对应的颜色。
https://blog.csdn.net/jujiyu6446/article/details/85279601

3.vaa3d的源代码一般存在于 \v3d_external\v3d_main\v3d,如果对于内部不清楚某一部分的接口,可以尝试采用该方法。

4.Vaa3D_LandMark属性对话框详情基本介绍 https://blog.csdn.net/jujiyu6446/article/details/102552755

教程3:认识Qt

QT是一个常用的编辑器。编写GUI程序非常方便、所见即所得。
Qt的一些特性可以注意一下,ui文件做的一些改动存储在两个不同的地方,1.槽函数的信号函数一般放在 xx.cpp。一些基本的定义放在ui_ xx.cpp,可通过该setupUi()函数跳转。如果对于界面有问题可以在该文件中寻找灵感。
在这里插入图片描述

对于每一个Qt自定义的控件,如PushButton,可以在ui界面查看有什么属性,我们可以选择自己需要的属性对应进行修改。

在这里插入图片描述

设置属性一般采用set开头的函数,获取则用get。

教程4:认识NeuronTree数据格式

NeuronTree一般存储为swc格式。两者可以互相转化。
NeuronTree包含两个主要的子元素。NeuronSWC代表swc文件中的一行。主要包括7项属性。一般第一个点的parent为-1

int I;
int type;	
float x, y, z;
float radius;
V3DLONG parent;	

QList <NeuronSWC> listNeuron;
QHash <int, int>  hashNeuron;

当用于编辑时,一般先转换成my_surf_objs.cpp文件下定义的vector<MyMarker*>形式,该形式的特点是其parent不是数字,而是指向其他的MyMarker。
SWC模型 https://blog.csdn.net/jujiyu6446/article/details/100138564
Vaa3d_DIADEM metric基本介绍_SWC拓扑结构量纲 https://blog.csdn.net/jujiyu6446/article/details/102560815

教程5:认识marker数据格式

Marker比NeuronTree更简单。主要包括10项。

##x,y,z,radius,shape,name,comment, color_r,color_g,color_b
坐标、半径比较常用,然后就是最后的颜色。

补充知识1:局部变量与界面

当设计一个GUI类或者其他的用于计算的类后,在插件中定义并使用时,可以认为是插件的domenu函数下的局部变量。如果不定义成指针形式,那么将会导致domenu运行完成后跳出domenu函数,局部变量析构。
同理,为不改变callback的值,如果想将变量传入类变量并保存,则需要采用引用或者指针的形式。

补充知识2:connect

Connect 意味着当信号源发出信号时,槽对象的槽函数将被对应的触发。要求是connect的槽对象需要第一个继承Qobject。

connect(score_slider, SIGNAL(valueChanged(int)), this, SLOT(sliderValueChanger(int)));

基本形式如下,仅需保留信号函数中的变量类型,不要保留变量名。

补充知识3:部分特性(BUG)

目前不能以非8位的形式存储tiff数据。如float等。不会报错但是图像会有问题。

GitHub

v3d的主体是在v3d_external,我们一般不去动,我们主要将代码上传到vaa_3dtools的hackathon文件夹下,所以vaa_3dtools日志较多,较大。
在下载vaa_3dtools时,可能会由于github的大小限制而下载失败。
git clone --recursive https://github.com/Vaa3D/v3d_external.git
git clone --depth 1 https://github.com/Vaa3D/vaa3d_tools.git
加入depth参数,可以使得不下载一部分历史纪录等,大幅度减少需要下载的内容。
Github的操作流程,先加入group,获取上传权限。
https://github.com/Vaa3D/Vaa3D_Wiki/wiki/Git-tips

  1. clone工程
  2. 在对应的位置修改文件
  3. Git bash在对应的文件夹下git add,在git add时,请不要上传除cpp、h、pro以外的无关文件,尤其是编译的中间结果。git add . 表示添加当前文件夹下文件。
  4. git status,绿色是确认要修改的文件
  5. git pull
  6. git commit 在这里会要求输入操作说明,输入完成以后,1.按ESC退出编辑状态 2. 输入:wq 保存并退出。
  7. git push

1.如果git add了以后想撤销,参考http://www.cnblogs.com/arieslee/p/8288223.html

2.每次想上传之前,先git pull,才能git push

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值