自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 ITK中几种图像距离变换方法

距离变换主要分为欧氏距离变换和非欧氏距离变换。非欧距离变换包括棋盘距离变换、城市街区距离变换和倒角距离变换。切比雪夫距离(Chebyshev Distance)也叫棋盘距离:| x1 - x2 | + | y1 - y2 |L1距离、曼哈顿距离,也叫城市街区距离:max( | x1 - x2 |, | y1 - y2 | )

2024-02-29 11:15:00 249 1

原创 nnDetection简明安装和训练流程(Windows环境)

nnDetection使用及踩坑记录

2023-12-01 21:43:49 649 5

原创 Qt获取磁盘剩余空间

Qt获取磁盘剩余空间

2023-02-17 14:30:35 513

原创 VS2019+Qt解析XML文件在doc.setContent(&file)处报错

VS2019+Qt解析XML文件在doc.setContent处报错犯了一个很低级的错误,记录一下过程。很早之前建立了一个Qt工程。现在要添加一个使用QDom类解析xml文件的功能,总是在doc.setContent(&file)这句出错,且没有任何报错信息。相关C++代码如下:QString error;int line, column;if (doc.setContent(&file, &error, &line, &column)) { qDe

2021-09-17 22:23:19 965

原创 C++范围for语句 for(auto &r :v )

C++范围for语句 [auto &r :v]传统for语句范围for语句传统for语句传统for语句的语法形式是for (初始化声明; 条件; 修改初始化变量的表达式)       statement先判断条件,再执行声明。范围for语句C++11新标准引入了一种更简单的for语句,这种语句可以遍历容器或其它序列的所有元素。范围for语句的语法形式是:for(declaration: expression)  &nbs

2021-03-25 16:54:22 668

原创 LeetCode刷题 C++数据结构

C++ 数据结构链表字符串链表定义// Definition for singly-linked list.struct ListNode { int val; ListNode *next; ListNode() : val(0), next(nullptr) {} ListNode(int x) : val(x), next(nullptr) {} ListNode(int x, ListNode *next) : val(x), next(next) {}};链表的数据结

2021-03-19 10:30:08 391

原创 C++ 如何得到排序后相应的索引

template <typename T>vector<int> sort_indexes(const vector<T>& v) { // 初始化索引 vector<int> idx(v.size()); for (int i = 0; i != idx.size(); ++i) idx[i] = i; // 根据vector的值对索引排序 sort(idx.begin(), idx.end(), [&v](int i1

2021-03-15 15:15:16 1836 1

原创 C++读取文本文件

C++读取文本文件比如有一批坐标点:我想读取进一个vector数组中,代码片如下:const char* FileName = "./Resources/Plan.txt";ifstream readFile;readFile.open(FileNeedlePos, ios::in);vector<float> pos;string str;while (readFile >> str){ str.erase(remove(str.begin(), str.en

2021-02-27 15:00:29 488

原创 C++ STL 常用(持续更新)

C++ STL 常用(持续更新)vectormap写LeetCode总是忘记一些常用的模板类用法,在此总结,望牢记。vector头文件#include <vector>using namespace std;初始化vector<int> nums = { 1,2,2,3,1};排序// 注意:1. sort用法要包含<algorithm>头文件。// 2. 如果不想改变原数组,可以提前copy一个#include <a

2021-02-27 11:53:13 137

原创 Visual Studio工程调用第三方库时Debug和Release模式的冲突问题

Visual Studio工程调用第三方库时Debug和Release模式的冲突问题Debug模型和Release模式区别出现报错的原因解决方法Debug模型和Release模式区别Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release:Release通常称为发布版本,是为用户使用的,一般客户不允许在发布版本上进行调试。所以不保存调试信息,同时,它往往进行了各种优化,以期达到代码最小和速度最优。为用户的使用提供便利。出现报错的原因我使用Qt和VTK 8.

2021-02-01 11:32:20 3465 2

原创 Gurobi优化器使用(三)Callback实例

Gurobi优化器使用(三)Callback实例问题描述代码总结问题描述旨在解决下面的简单线性优化,使用barrier内点法.要求:在迭代过程中,把第一次目标大于1的迭代轮数和具体目标值保存并显示出来.代码# include "gurobi_c++.h"# include <fstream># include <cmath>using namespace std;class mycallback : public GRBCallback{public: i

2020-10-26 11:17:57 2157 2

原创 Gurobi优化器使用(二)初识Callback

Gurobi优化器使用(二)初识Callbackcallback的解释:callback在C++ API的解释:callback回调函数——官方文档翻译:性质作用注意事项两个重要参数callback的解释:链接callback在C++ API的解释:链接callback回调函数——官方文档翻译:性质Gurobi callback class 是一个抽象类,要实现回调,务必创造该类的子类并实现callback()方法.如果在调用GRBModel::optimize之前将此子类的对象传递给方法G

2020-10-22 21:44:23 2114

原创 Gurobi优化器使用(一)搭建并求解一个优化模型的过程【C++环境】

Gurobi优化器使用(一)搭建并求解一个优化模型的过程Gurobi可以解决的问题文档实例——通过系数矩阵建模并求解解释实例——直接建模并求解求解结果Gurobi可以解决的问题文档官方文档8.1版本C++接口的官方文档实例——通过系数矩阵建模并求解当系数已存入到外部的模型文件中需要读取时可以采用该方法建模,否则不推荐这种方式./* 该例子解决下面的凸二次规划问题: minimize x + y + x^2 + x*y + y^2 + y*z + z^2 subject to x + 2

2020-10-21 20:43:08 5879 10

原创 VTK报错:无法读取内存 0x00000000000(???)

初衷是创建一个ImageData类,然后修改里面的像素。在SetOrigin,spacing,Dimensions后,使用float* dose_buff = static_cast<float*>(m_Dosebuffer->GetScalarPointer());获取头指针,然后就出现内存报错.VTK创建新图像时,若非从数据中读取信息,都需要预先分配内存。使用AllocateScalars()方法:m_Dosebuffer->AllocateScalars(VTK_FLOAT

2020-09-22 21:49:26 582

原创 线性规划——单纯形法

线性规划——单纯形法线性规划(Linear Programming)概念标准形式单纯形法(Simplex Method)单纯形法的思路总结整体过程约化问题最优解判定迭代过程其它情况退化解没有初始可行解的情况线性规划(Linear Programming)概念目标函数是线性的,约束条件是线性等式或不等式,每个变量都取实数值.标准形式 minimize cTx subject to Ax=bx≥0\begin{array}{ll}\text { mi

2020-09-13 22:17:31 3178

原创 解决4K屏幕显示QT界面时出现窗口变小分辨率不匹配的问题

在QApplication a(argc, argv);这句之前添加:#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)) QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);#endif在支持的平台上的Qt中启用高DPI缩放(另请参阅“高DPI显示”)。 支持的平台是X11,Windows和Android。 根据操作系统提供的显示比例因子,启用可使Qt比例成为主要(独立于设备的坐

2020-09-12 13:38:26 2870

原创 QT报错:This application failed to start because it could not find or load the Qt platform plugin

VS2019在使用Release模式运行时报错。解决方案:用Qt部署工具windeployqt.exe来检测运行该exe所需动态库.windeployqt.exe 目标.exe

2020-09-12 12:50:09 315

原创 等效均一剂量(Equivalent Uniform Dose EUD)的概念

参考: 狄小云 生物等效均衡剂量理论在放疗临床中的应用EUD的概念和定义EUD的计算公式EUD的特性参数

2020-09-07 16:15:42 3307

转载 放射计划如何评估

一个好的放疗计划应该满足下列条件(临床剂量学四原则):A:肿瘤剂量要准确。B:治疗的肿瘤区域内,剂量分布要均匀,剂量变化梯度不能超过±5%,即要达到≥90%的剂量分布。C:照射野设计应尽量提高治疗区域内剂量,降低照射区正常组织受照剂量。D:保护肿瘤周围重要器官不受或少受照射。如何评估一个放疗计划呢?主要从以下几个方面:1等剂量曲线图分析定义:把模体内过射线中心轴平面上剂量相同的点连接起来形成的一组曲线称为等剂量曲线。等剂量曲线直观反映了射线束在体内离轴方向的剂量变化。应逐层分析三维剂量分布

2020-09-04 10:50:08 5510 1

原创 放疗的期刊

期刊名称:SEMIN RADIAT ONCOL影响因子:2014 impact factor 3.768网络版地址: http://journals.elsevierhealth.com/periodicals/ysrao——基本都是综述,篇篇都是精品期刊名称:RADIOTHER ONCOL影响因子:2014 impact factor 4.857网络版地址: http://www.sciencedirect.com/science/journal/01678140——绿皮杂志期刊名称:I.

2020-09-04 10:08:05 3150

原创 VTK管线——(可视化管线和渲染引擎)的浅显理解

VTK管线——(可视化管线和渲染引擎)的浅显理解术语的理解可视化管线和渲染引擎参考文献:《VTK图形图像开发进阶》——张晓东、罗火灵先上一段渲染一个柱体的代码,它包含了完整的一套管线结构#include <vtkAutoInit.h>VTK_MODULE_INIT(vtkRenderingOpenGL2);// VTK was built with vtkRenderingOpenGL2VTK_MODULE_INIT(vtkInteractionStyle);#include &lt

2020-08-29 20:11:56 1603

原创 word文档中插入visio文件显示不全

行距的问题,进入段落设置界面,行距是设定的固定值的话,就能肯定了直接修改行距,把固定值修改为其它任何一个都行,像1.5倍行距之类,即可

2020-08-28 16:36:36 697

原创 使用VS编译VTK程序报错—— Error: no override found for vtkRenderWindow

错误的原因是链接器不能找到vtkRenderWindow的方法. 此时需要注意build的时候到底是使用了哪个VTK后端,是OpenGL还是OpenGL2. 使用cmake不会报错,是因为它已经默认初始化配置好了。而其它的编译器像VS就没有.解决方案:在源文件的顶部加上#include <vtkAutoInit.h>VTK_MODULE_INIT(vtkRenderingOpenGL2);// VTK was built with vtkRenderingOpenGL2VTK_MODU

2020-08-23 10:16:46 601

原创 Visual Studio第三方库避免重复配置的问题

找到属性管理器右键-添加新项目属性表命名为OpenCV_Debug,然后双击打开,跟之前配置OpenCV的操作一样,将依赖项,include目录等添加进去保存即可.在该项目的目录下可以看到.props配置文件下次创建新工程后,右键-添加现有属性表,把之前生成的.props文件添加进来即可....

2020-08-23 09:33:46 368

转载 E0144 “const char *“ 类型的值不能用于初始化 “char *“ 类型的实体

参考:https://www.cnblogs.com/xiximayou/p/12121287.htmlconst char* 和char *类型不匹配解决的方法有三种:第一种:在visual studio中,在项目上右键,在弹出菜单上选择“属性”,选择“C/C++”,然后在“语言”中,把“符合模式”改为“否”就好了。第二种:使用强制类型转换://有问题代码char *str2 = "hello world";//正确的代码char *str2 = (char *)"hello world";

2020-08-22 11:21:05 319

原创 论文笔记:A Learning-based Iterative Method For Solving Vehicle Routing Problems(ICLR 2020)

本文来自普林斯顿大学的研究结果,是一篇基于强化学习方法解决组合优化问题的文章。以往解决优化模型,常见的方法有以下几类:确定性优化算法:如基于梯度的方法——最速下降法、牛顿法、拟牛顿法…;线性规划、混合整数规划;随机性优化算法:模拟退火、遗传算法启发性算法:贪婪算法作者将优化算法分为Operation Methods (运筹学方法)和 Learning-based Methods(基于学习的方法:DL/RL). PS: 其实我也不知道随机性和启发性算法属不属于运筹学的范围。在过去的文章中,基于学

2020-08-18 10:06:47 2505 6

原创 医学图像处理(一)使用U-Net进行MRI的肝脏分割

医学图像处理(一)使用U-Net进行MRI的肝脏分割数据集搜集训练集和测试集划分问题一: 测试集不包括GroundTruth问题二:T1和T2的数据能一起训练吗?问题三: T1的图像在文件夹中分成了InPhase和OutPhase,这个有什么区别?分离出肝脏将dicom文件转换为png格式数据增强U-net网络搭建自定义DatasetMain.py实验结果总结图像分割小白一枚,之前接到一个MRI图像肝脏分割的任务。对于医学图像分割,第一想到的就是Unet. Unet在2015的MICCAI上首次提出,在医

2020-08-06 15:30:45 15538 32

原创 Python Image库的mode形式

模式1 1位像素,黑和白,存成8位的像素L 8位像素,黑白P 8位像素,使用调色板映射到任何其他模式RGB 3×8位像素,真彩RGBA 4×8位像素,真彩+透明通道CMYK 4×8位像素,颜色隔离YCbCr 3×8位像素,彩色视频格式I 32位整型像素F 32位浮点型像素...

2020-08-04 11:02:19 758

原创 Anaconda环境的移植方法

首先激活自己想要导出的Conda环境(假设环境名是my_environment)conda activate my_enviroment导出至environment.yaml文件中conda env export > environment.yaml在另一台电脑上复现conda环境conda env create -f environment.yaml前面只是导出了conda install的包,pip install还没有导出。因此需要导出pip安装的库到requirements.tx.

2020-07-27 13:01:14 1819

原创 强化学习笔记(七)演员-评论家算法(Actor-Critic Algorithms)及Pytorch实现

强化学习笔记(七)演员-评论家算法(Actor-Critic Algorithms)及Pytorch实现接着上一节的学习笔记。上一节学习总结了Policy Gradient方法以及蒙特卡洛Reinforce实现。这节了解一下Actor-Critic算法。Actor-Critic是2000年在NIPS上发表的一篇名为Actor-Critic Algorithms的论文中提出的。它是一种策略(Policy Based)和价值(Value Based)相结合的方法,见UCL第七讲的开篇PPT(下图)第一个是

2020-07-25 10:41:58 12644 23

原创 Pytorch获取无梯度TorchTensor中的值

获取无梯度Tensor遇到的问题:使用两个网络并行运算,一个网络的输出值要给另一个网络反馈。而反馈的输出值带有网络权重的梯度,即grad_fn=<XXXBackward0>.这时候如果把反馈值扔到第二网络中更新,会出现第一个计算图丢失无法更新的错误。哎哟喂,我根本不需要第一个网络的梯度好吗?一开始用了一个笨办法,先转numpy,然后再转回torch.Tensor。因为numpy数据是不带梯度的。但是我的原始tensor的放在cuda上的,cuda的张量是不能直接转Tensor,所以:t

2020-07-25 10:20:43 1396

原创 Latex插入图片、公式和表格

今天帮别人写Latex格式的报告,发现之前踩过的坑又踩了一遍,特此总结一下。插公式强烈安利Mathpix Snipping Tool,这是一款基于OCR文字识别的自动生成公式软件,节约了很多盲目打公式的时间。结合Typora也能生成Mathtype/ Word公式等其他格式。打公式怎么自定义编号? \begin{equation} K=\alpha F_{0} \tag{111} \end{equation}加\tag{}即可,下面是效果插图片怎么一行插入多张图片?图片和文字的顺序不

2020-07-24 19:28:13 1950

原创 强化学习笔记(六)策略梯度法(Policy Gradient)及Pytorch实现

强化学习笔记(六)策略梯度法(Policy Gradient)Q1:Policy-Based方法相比Value-Based的优劣在哪?Q2:如何直观地理解Policy-Based模型?这节对应UCL课程第七讲。之前所学习的方法都是Value-Based,算是一种间接方法。我们先算出价值函数,再去做决策。我们使用的策略都是确定性策略,类似一条路走到黑。在面对一个确定的状态时,我们会采用动作价值函数最大的动作,而不会考虑其它,即π(a∣s)=1\pi(a|s)=1π(a∣s)=1。而Policy-Based是

2020-07-20 17:11:19 5885 16

原创 强化学习笔记(五)Pytorch实现简单DQN

强化学习笔记(五)价值函数的近似(Value Function Approximation)Q1:值函数近似的形式和意义?Q2:梯度下降法公式中的真值Vπ(s)V_{\pi}(s)Vπ​(s)和qπ(S,A)q_{\pi}(S,A)qπ​(S,A)是如何处理的?Q3:如何理解DQN中的经验回放(Experience Relay)机制?表格型的近似求解方法只适用于低规模的问题。对于复杂庞大状态-动作空间的问题,我们不可能有足够的内存去存放和维护这样一个Q_Table. 因此强化学习和深度学习的结合是发展历程

2020-07-17 18:18:49 4458 3

原创 强化学习笔记(四)无模型控制(Model-Free Control)

强化学习笔记(四)无模型控制(Model-Free Control)Q1: On-Policy和Off-Policy的区别?UCL课程第五讲主要内容是On-Policy MC, On-Policy TD(SARSA), Off-Policy TD(Q-Learning). 首先回顾策略迭代方法,讲解ϵ−greedy\epsilon-greedyϵ−greedy的函数意义,之后讲了这三种控制方法。Q1: On-Policy和Off-Policy的区别?On-Policy一直使用一个策略来更新价值函数和

2020-07-14 19:44:21 2132

原创 强化学习笔记(三)无模型预测(Model-Free Prediction)

强化学习笔记(三)无模型预测(Model-Free Prediction)Q1:对修正公式的理解?为什么使用α\alphaα因子比1/N(S)1/N(S)1/N(S)效果更好?使用计数器不是会更精准吗?Q2:TD法比MC法效率更高、效果更好的原因?Q3:TDTDTD(λ\lambdaλ)为什么要用到几何加权而不是别的手段?Q4:为什么λ=0\lambda=0λ=0变成时序差分法,λ=1\lambda=1λ=1变成蒙特卡洛法?动态规划法求解MDP时通过两个步骤进行迭代求解:状态评估和策略优化。也就是说我们面

2020-07-12 22:47:43 1682

原创 强化学习笔记(二)动态规划法求解MDP

强化学习笔记(二)动态规划法求解MDPQ1:策略迭代和价值迭代的区别在哪?附:GridWorld游戏的MATLAB代码在MDP的内容中已经证明了一定存在best policy,并且递推公式是最终收敛到best policy的。那么动态规划是一个比较直观求解MDP的方法。我对于Dynamic Programming不是很了解,也没有刷过Leetcode的题目。很多文章在讲解的时候提到了“分治”,“递推/递归”,“子问题”等思想。个人比较粗糙地理解就是类似数值分析中的迭代,若我们有一个k步到k+1步的递推关系

2020-07-10 23:51:35 1168

原创 强化学习笔记(一)马尔可夫决策过程

强化学习笔记(一)马尔可夫决策过程参考资料正文Q1: RtR_{t}Rt​, GtG_{t}Gt​, V(St)V(S_{t})V(St​)都有奖励或收获的含义,它们有什么区别?Q2:为什么GtG_{t}Gt​使用那样的衰减公式?Q3:贝尔曼方程的作用?Q4:π(a∣s)\pi(a|s)π(a∣s)和Pss′aP_{ss'}^{a}Pss′a​的区别?Q5: Vπ(s)V_\pi(s)Vπ​(s)和qπ(s,a)q_\pi(s,a)qπ​(s,a)的关系?Q6: 不同的策略产生不同的Vπ(s)V_{\pi}

2020-07-06 23:26:15 1701

原创 Python的简单文件操作——os/shutil接口

Python的简单文件操作导入模块文件路径拼接文件夹的访问文件删除文件复制学习Deep Learning有时候需要处理一些数据量较大的源数据集,那么简单的文件操作必不可少。详细的介绍可参阅Python文档—os接口模块。导入模块import osimport shutilimport randomos是操作系统接口模块;shutil是高级文件接口模块,一般用来copy文件;random是用于打乱数据集时使用的。文件路径拼接root = "E:\\workspace"dataset_dir

2020-06-19 11:04:39 221

原创 OpenCV学习笔记(二)访问和修改图像像素

OpenCV学习笔记(二)访问和修改图像像素问题提出基础知识RGB表色模型图像深度图像的Mat结构访问图像像素的语句和方法实例:消除背景网格对灰度图像的处理对彩色图像的处理结语问题提出之前做开题报告需要画流程图,于是我在网上用了某某免费流程图在线制作,美滋滋地画完后发现——不!能!保!存!。原来只能免费做图,不能免费保存啊。那我就QQ截图呗,可截图有自带的网格背景,如下:如果放到报告中,与...

2019-05-10 16:54:21 3700

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除