编译ctk源码

目录

1. 前景介绍

2. 下载The Common Toolkit (CTK) 

3. cmake-gui编译

4. vs2019生成

4.1 release版

5. 验证安装


1. 前景介绍

CTK(Common Toolkit)是一个用于医学图像处理和可视化应用程序开发的工具集,具有以下特点:

  1. 基于开源和跨平台的Qt框架: CTK构建在Qt框架之上,这意味着它具有跨平台性,可以在多个操作系统上运行,包括Windows、Linux和macOS。Qt提供了丰富的GUI开发工具,使得开发医学图像处理应用程序变得更加容易。

  2. DICOM支持: CTK包括一组用于处理DICOM(数字影像和通信医学)格式的工具和库。DICOM是医学图像处理领域中常用的标准格式,CTK使开发人员能够轻松地读取、解析和处理DICOM图像和数据。

  3. 可视化组件: CTK提供了一系列用于可视化医学图像的组件,包括用于图像显示、交互和浏览的工具。这些组件可以帮助开发人员创建用户友好的医学图像处理界面。

  4. 插件架构: CTK支持插件架构,允许开发人员轻松扩展应用程序的功能。你可以通过创建自定义插件来添加特定的图像处理算法或其他功能。

  5. 社区支持: CTK是一个开源项目,拥有活跃的社区支持。这意味着开发人员可以获得开发文档、示例代码和社区讨论,以解决问题并分享最佳实践。

  6. 用于医学研究和临床应用: CTK的主要应用领域是医学图像处理和医学研究,因此它专注于满足医学领域的需求。它的特性和工具旨在支持医学研究和临床应用程序的开发。

总之,CTK是一个专注于医学图像处理应用程序开发的工具集,它提供了DICOM支持、可视化组件、插件架构和跨平台性等特点,使开发人员能够更轻松地创建医学图像处理应用程序。它是医学领域中广泛使用的工具之一。

先安装好vs2019, cmakeqt5.15.2

官网编译教程:https://slicer.readthedocs.io/en/latest/developer_guide/build_instructions/windows.html

2. 下载The Common Toolkit (CTK) 

ctk源码:https://github.com/commontk/CTK/archive/master.zip

ckt-data源码:https://github.com/commontk/CTKData/archive/master.zip

解压文件得到

3. cmake-gui编译

 

修改qt版本

configure

设置qt路径,如果Qt5_DIR不存在,则通过Add Entry添加。

configure,然后再添加CTKData_DIR 

选择要编译的模块 

CTK_ENABLE_PluginFramework
CTK_ENABLE_Widgets
CTK_LIB_PluginFramework
CTK_LIB_Widgets
CTK_PLUGIN_org.commontk.configadmin
CTK_PLUGIN_org.commontk.eventadmin
CTK_PLUGIN_org.commontk.log
CTK_PLUGIN_org.commontk.metatype


取消选中 BUILD_TESTING

具体如下。挨个去搜索,设置

 

取消superbuild

 generate,再点击open project

4. vs2019生成

4.1 release版

生成-》配置管理器,选中INSTALL,生成解决方案。

编译成功,默认的编译成功的文件会放置在c盘下。

lib文件夹下有lib和dll

 

将PluginFramework源码,CTK 插件相关头文件所在路径(主要因为用到了 service 相关东西),拷贝到编译后的文件夹下。

5. 验证安装

测试安装是否成功,测试程序1:使用CTK自定义空间。

#include <QApplication>
#include <QFormLayout>
#include <QVBoxLayout>


#include <ctkCheckablePushButton.h>
#include <ctkCollapsibleButton.h>
#include <ctkColorPickerButton.h>
#include <ctkRangeWidget.h>

int main(int argc, char* argv[])
{
    QApplication app(argc, argv);

    // 可折叠按钮
    ctkCollapsibleButton* buttons = new ctkCollapsibleButton("Buttons");

    // 可勾选按钮
    ctkCheckablePushButton* checkablePushButton = new ctkCheckablePushButton();
    checkablePushButton->setText("Checkable");

    // 颜色拾取器
    ctkColorPickerButton* colorPickerButton = new ctkColorPickerButton();
    colorPickerButton->setColor(QColor("#9e1414"));

    ctkCollapsibleButton* sliders = new ctkCollapsibleButton("Sliders");

    QFormLayout* buttonsLayout = new QFormLayout;
    buttonsLayout->setFieldGrowthPolicy(QFormLayout::AllNonFixedFieldsGrow);
    buttonsLayout->addRow("ctkCheckablePushButton", checkablePushButton);
    buttonsLayout->addRow("ctkColorPickerButton", colorPickerButton);
    buttons->setLayout(buttonsLayout);

    QVBoxLayout* topLevelLayout = new QVBoxLayout();
    topLevelLayout->addWidget(buttons);
    topLevelLayout->addWidget(sliders);

    QFormLayout* slidersLayout = new QFormLayout;
    ctkRangeWidget* rangeWidget = new ctkRangeWidget();
    slidersLayout->addRow("ctkRangeWidget", rangeWidget);
    sliders->setLayout(slidersLayout);

    QWidget topLevel;
    topLevel.setLayout(topLevelLayout);
    topLevel.show();

    return app.exec();
}

测试程序2:开启插件框架系统。

#include <QApplication>

#include "ctkPluginFrameworkFactory.h"
#include "ctkPluginFramework.h"
#include "ctkPluginException.h"
#include <QDebug>
#include <qwindow.h>

int main(int argc, char* argv[])
{
    QApplication a(argc, argv);

    a.setApplicationName("CTK_PluginFramework");//给框架创建名称,Linux下没有会报错
    ctkPluginFrameworkFactory frameWorkFactory;
    QSharedPointer<ctkPluginFramework> framework = frameWorkFactory.getFramework();
    try {
        // 初始化并启动插件框架
        framework->init();
        framework->start();
        qDebug() << "CTK Plugin Framework start ...";
    }
    catch (const ctkPluginException& e) {
        qDebug() << "Failed to initialize the plugin framework: " << e.what();
        qDebug() << e.message() << e.getType();
    }


    return a.exec();
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Q

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值