自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【22】Eigen的常见用法总结

1 向量和矩阵的运算主要包含(1)矩阵和矩阵的运算(2)向量和向量的运算(3)矩阵和向量的运算(4)矩阵和向量的标量运算(5)矩阵的自身运算、分解、逆矩阵、伴随矩阵2 易犯错误点(1)向量的叉乘只能针对三维向量,向量的点乘对于向量长度没有限制;(2)向量默认为行向量;(3)矩阵和矩阵的除法,需要转换为数组运算(4)向量和向量的乘法和除法则需要转换为数组运算;(5)数组运算是支持所有数学运算的,数组和矩阵可以互相转化。3 使用说明#include<.

2022-04-17 20:53:33 4913

原创 【4】np.linalg.eig()和np.linalg.svd()区别

【1】np.linalg.eig()函数输入:计算奇异值和右奇异值的方阵输出:特征值和特征向量计算过程:(1)输入计算的矩阵;(2)矩阵每个维度减去均值;(3)计算矩阵的协方差矩阵;(4)eig分解参考代码:def SVDInArray(sitk_img): numpy_img=sitk.GetArrayFromImage(sitk_img) numpy_img[numpy_img<0]=0 sitk_ex=sitk.GetImageFr

2021-11-14 14:54:33 3189

原创 【3】机器学习中高斯混合模型的求解

【1】机器学习中的函数GaussianMixture求解各个模型的分量【1.1】GaussianMixture参数解释可参考文献:【sklearn篇】mixture.GaussianMixture各参数详解以及代码实现_Yakuho的博客-CSDN博客_gaussianmixture【1.2】代码from matplotlib import colorsimport numpy as npimport matplotlib.pyplot as pltfr...

2021-10-23 13:11:09 1578

原创 【2】cmake编译.cpp文件案例

首先需要新建三个文件夹:cmaketest存放编写的.cpp工程,build存放cmke编译 的结果,斌存放编辑器最终编译的结果。(1)vs2017编写.cpp文件// testcmake.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include "pch.h"#include <iostream>using namespace std;int main() { cout << "Hello Worl

2021-09-25 15:04:36 875

原创 【1】批量获取文件夹下文件名

注意:lib是文件的后缀,可以更换为自己的类型,例如.py .jpg等,name则表示新生成文件的文件名。(1)新建txt文件,输入DIR *.lib/B >name.txt保存,(2)将后缀名.txt改为.bat,双击生成name.txt参考文献:VS2017配置VTK8.2.0和ITK4.13.2_oucc257的博客-CSDN博客...

2021-09-25 14:26:06 107

原创 【5】 ITK5.2.1编译与vs2017的配置

【1】ITK编译参考文献:参考下面博客可完整安装vs2017配置安装ITK4.13.3(详细版本)_A2333fun的博客-CSDN博客_vscode2017主要流程:创建一个文件夹itk,里面三个文件夹:Bin:vs2017最终的编译结果,包含include lib binBuild: Cmake编译的结果,需要vs2017编译后Bin文件夹里面才有文件。Sorce: 下载的itk的解压文件(1)下载itk 。(2)cmake编译itk。一定要注意编译时候平台x8.

2021-09-12 17:14:17 482

原创 【2】Cmake编译报错解决 could not find any instance of Visual Studio

【1】Cmake编译报错CMake Error at CMakeLists.txt:63 (project):GeneratorVisual Studio 15 2017could not find any instance of Visual Studio.【2】原因vs2017中的组件没有安装完整解决方法:启动vs_installer重新添加组件参考文献:解决:CMake Error :Visual Studio 15 2017 -could not find any ins.

2021-09-12 11:15:07 1615

原创 【4】w10配置两个cuda版本参考资料

安装了CUDA11.4和CUDA9.2,因为9.2不支持vs2019参考文献,重点参考了VS2019 + CUDA10.1 安装和配置博客VS2019 + CUDA10.1 安装和配置CUDA10.1+VS2019的开发环境安装步骤:(1)先安装cuda9.2,可以参考VS2019 + CUDA10.1 安装和配置(2)安装vs2019(3) 配置环境(vs2019或者torch)(4)安装cuda11.4,注意,安装过程中不会覆盖v9.2,会自动添加v11..4会和v9.2

2021-08-19 11:31:58 629

原创 [10]simpleITK读取dcm格式维度变化

simpleitk在读取dcm格式时存储是xyz形式的,转换为数组后则为zyx.Simpleitk中图像形式:使用GetSize()的输出为:(Width, Height, Depth),也即原始SimpleITK数据的存储形式转换为数组的形式:使用GetArrayFromImage()方法后,X轴与Z轴发生了对调,输出形状为:(Depth, Height, Width)Width: 宽度,X轴,矢状面(Sagittal)Height: 高度,Y轴,冠状面(Coronal)Depth

2021-08-13 20:15:50 961

原创 【7】python中同级包模块引用

目的: packg2中test模块调用packg1中的test1模块中test1函数?import sysimport ossys.path.append(os.path.abspath(os.path.dirname(__file__)+'/'+'..'))from packg1.test1 import test1test1()注意 一定要加上以下代码import sysimport ossys.path.append(os.path.abspath(os.pat...

2021-08-12 22:16:45 504

原创 【9】simpleitk和OpenCV处理医学图像流程

【1】simpleitk打开,OpenCV处理simpleitk打开dcm格式的数据,通常是一个序列,随后转换为三维数组,然后采用OpenCV处理单个界面的图形(二维操作),随后保存到三维矩阵中,最后导出三维矩阵,设置格式。# here put the import libimport numpy as npimport SimpleITK as sitkimport cv2import copypath="F:\mediacldata\dcmimage\series-0000

2021-08-08 14:42:55 1233

原创 【1】vscode配置git后推送项目文件到码云

【1】git安装参考文献:https://blog.csdn.net/weixin_40965293/article/details/80319982【2】码云注册开仓库(1)创建新仓库,仓库名字最好与本地项的名字一样(2)将分支的权限设置为常规分支【3】本地文件推送到码云参考文献:https://www.jianshu.com/p/22aa9f630d72(1)右键打开git bash(2)输入以下代码git config --global user...

2021-07-11 21:29:39 307 1

原创 【1】图像处理常用函数

#!/usr/bin/env python# -*- encoding: utf-8 -*-import osimport cv2import numpy as npfrom numpy.core.fromnumeric import resize#创建一个不存在的文件夹def makefilepath(folder_path): if not os.path.exists(folder_path): os.makedirs(folder_path)..

2021-06-17 17:06:03 232

原创 【28】sys模块的使用方法

【1】模块介绍提供对解释器使用或维护的一些变量的访问,以及与解释器强烈交互的函数。它始终可用。【2】代码#!/usr/bin/env python# -*- encoding: utf-8 -*-'''@File : mytest.py@Time : 2021/06/17 15:06:19@Author : Jian Song @Contact : [email protected]@Desc : None'''# here put the

2021-06-17 15:43:09 272

原创 【27】unet网络复现及学习(1)

【1】config.ini#配置文件[base]batchsize=10ckptpath='./dowoload/weights_19.pth'train_path="F:/PytorchTes/torchdeeplearnmodel/unetdata/train"val_path="F:/PytorchTes/torchdeeplearnmodel/unetdata/val"【2】main.py#!/usr/bin/env python# -*- encoding: utf-8 -*-

2021-06-11 17:37:43 989

原创 【26】unet网络复现及学习(总述)

【1】模型介绍 Layer (type) Output Shape Param #================================================================Conv2d-1 [-1, 64, 512, 512] 640BatchNorm2d-2 [-1, 64, 512, 512] 128ReLU-3

2021-06-11 17:33:16 417

原创 【25】搭建FCN语义分割网络完成自己数据库图像分割(2)

【1】程序文件夹【2】训练数据库【3】数据库介绍(训练图片jpg,标签为png格式,名称相互对应)

2021-06-09 15:57:40 111

原创 【24】搭建FCN语义分割网络完成自己数据库图像分割(1)

【1】batchimageprocess.py #批量图片处理、改名字、改类型#!/usr/bin/env python# -*- encoding: utf-8 -*-'''@File : batchimageprocess.py@Time : 2021/06/03 11:19:16@Author : Jian Song @Contact : [email protected]@Desc : None'''# here put the impo

2021-06-09 15:30:50 947

原创 【23】搭建FCN语义分割网络完成自己数据库图像分割(总述)

【1】模型介绍搭建了一个分割网络,以此网络为基础完成图像的分割并计算最终的分割精度。---------------------------------------------------------------- Layer (type) Output Shape Param #================================================================ Conv...

2021-06-04 20:19:55 285

原创 【8】labelme的安装及使用简介

【1】安装参考文献深度学习图像标注工具汇总Github参考代码:https://github.com/wkentaro/labelmewindows安装方法(本文选用w7+py36)打开Anconada输入以下命令即可# python3conda create --name=labelme python=3.6conda activate labelmepip install labelme【2】分割方法【1】打开终端(shift+鼠标右键)【2】打开.

2021-05-26 15:25:12 686 2

原创 【7】SimpleITK输入终端参数将dicom转换为mha文件

【1】代码#!/usr/bin/env python# -*- encoding: utf-8 -*-'''@File : 03test.py@Time : 2021/05/21 10:50:10@Author : Jian Song @Contact : [email protected]@Desc : None'''# here put the import lib#!/usr/bin/env pythonfrom __future

2021-05-21 11:40:46 521

原创 【6】SimpleITK 与imageJ的联合使用

SimpleITK需要一个外部图像查看器来显示图像(ImageJ,3DSlicer,ITK-Snap等)此处以ImageJ为例【1】背景SimpleITK 用于完成医学图像处理,imageJ显示图像处理的结果。【2】安装SimpleITK 直接在python中安装,imageJ则是一个第三方的软件,需要安装好设置环境变量。【3】下载imageJ以及相关资源参考stack overflow别人给的意见https://stackoverflow.com/questions/43215

2021-05-21 10:09:37 385

原创 【5】nibabel三维显示

【1】参考代码#!/usr/bin/env python# -*- encoding: utf-8 -*-'''@File : test8.py@Time : 2021/04/30 16:53:05@Author : Jian Song @Contact : [email protected]@Desc : None'''# here put the import libimport matplotlibmatplotlib.use('

2021-05-14 21:07:23 1688

原创 【4】SimpleITK读取.dcm图像的基本操作

【1】参考代码#!/usr/bin/env python# -*- encoding: utf-8 -*-'''@File : test1.py@Time : 2021/04/29 20:40:56@Author : Jian Song @Contact : [email protected]@Desc : None'''# here put the import libimport SimpleITKimport numpyimpor

2021-05-14 21:02:44 1490

原创 【3】SimpleIKT读取.nii文件

【1】参考文献医学图像处理SimpleITK、pydicom的安装使用——踏上python生物医学图像处理的初学之路【2】代码#!/usr/bin/env python# -*- encoding: utf-8 -*-'''@File : test10.py@Time : 2021/04/30 17:56:59@Author : Jian Song @Contact : [email protected]@Desc : None'''

2021-05-14 20:58:02 829

原创 【1】常见手术机器人公司及产品介绍

【1】ROSA手术机器人【1.1】产品介绍ROSA专门用于脑部手术辅助,ROSA脑部手术机器人可应用于多种神经外科手术包括:DBS术:帕金森病、肌张力障碍、梅杰综合征、特发性震颤等;SEEG癫痫;脑内血肿排空、脑组织活检、脑脓肿穿刺引流、脑内异物摘除;颅骨开放性手术中导航包括脑室镜等。我们对ROSA机器人手术过程中融合、注册、矫正等方面不断改进,ROSA机器人更有效的解决了神经外科精度要求高、手术时间长、计算繁琐、缺乏三维精度视野等问题;在提高手术操作的精确性的基础上,减小手术创伤、简化手术操作,.

2021-05-10 11:03:23 3108

原创 【2】NIFTI图像格式

【1】格式介绍.nii文件是NIFTI格式的文件,出现的原因是原来一种图像格式是ANALYZE 7.5 format,但是这个图像格式缺少一些信息,比如没有方向信息,病人的左右方位等,如果需要包括额外的信息,就需要一个额外的文件,比如ANALYZE7.5就需要一对<.hdr, .img>文件来保存图像的完整信息。因此,解决这个问题Data Format Working Group (DFWG) 将图像格式完整的定义为NIFTI(Neuroimaging Informatics Technol

2021-04-30 18:08:26 1729 1

原创 【1】DICOM图像格式

【1】DICOM介绍医学数字成像与通信(digital imaging and communicationsin medicine,DICOM)标准的制定和发展与图像存档与通信系统(picture archiving and communication systems,PACS)的发展有密切的关系。PACS在20世纪80年代初有较大发展,但由于各成像设备厂家所用数据格式不统一,因而影响它们之间的信息交换、互连与通信,并阻碍本身的发展。这些问题促使美国放射协会(American college of ra

2021-04-29 19:48:08 1854 2

原创 【22】Unet网络的复现和理解

【1】网络结构UNet网络模型图Unet包括两部分:1 特征提取部分,每经过一个池化层就一个尺度,包括原图尺度一共有5个尺度。2 上采样部分,每上采样一次,就和特征提取部分对应的通道数相同尺度融合,但是融合之前要将其crop。这里的融合也是拼接。该网络由收缩路径(contracting path)和扩张路径(expanding path)组成。其中,收缩路径用于获取上下文信【1.1】网络优点(1) overlap-tile策略(2)数据增强(data augm...

2021-04-19 21:14:37 5305 4

原创 【21】FCN网络训练及理解

准备工作代码地址:https://github.com/bat67/pytorch-FCN-easiest-demo论文参考:全卷积网络 FCN 详解 FCN详解与pytorch简单实现(附详细代码解读)【1】FCN网络简介FCN网络实现了端到端的图像分割,去除了卷积网络的全连接层,采用反卷积的方式,实现像素级别的分割,并加入skip方式,提升了分割性能。【2】训练步骤文件目录展示【2.1】打开python-mvisdom.se...

2021-04-18 16:27:35 1503 1

原创 【5】python调用c++的动态链接库

【1】动态链接库的创建[1.1]文件的创建(1)新程序直接创建(2)exe修改为动态链接库(修改配置类型为dll)【1.2】动态库中的头文件和应用文件.h文件#pragma once//test.h#pragma onceclass Mymath { int sum(int, int); int sub(int, int);};.cpp文件#include"pch.h"#include"pycall.h"#define DLLEXPORT ext

2021-04-16 10:28:46 169

原创 【4】详述C++调用python脚本文件的类、成员函数、非成员函数及含第三方库的文件

本篇博客主要讲述c++环境下调用python脚本的主要步骤以及配置,并调用函数进行实例演示。【1】环境配置【1.1】include文件和lib文件的复制。(1)源文件位置,anconda目录下的两个文件。(2)复制后的文件位置,红色区间内为复制过来的两个文件,其他文件为应用程序的项目文件夹。【1.2 】环境配置主要由三部分组成:包含目录、库目录、附加依赖库。【1.3】无法打开 python36_d.lib 的问题,配置pyconfig.h文件,python36_d.l

2021-04-14 15:56:27 4092 2

原创 【38】面试题45:圆圈中最后剩下的数字

【1】题目题目:0,1,…,n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。【2】思路我们自己实现一个链表也不是很难的事情。如果面试官没有特殊要求,我们就可以用模板库中的std::list来模拟一个环形链表。由于std::list本身并不是一个环形结构,因此每当迭代器(Iterator)扫描到链表末尾的时候,我们要记得把迭代器移到链表的头部,这样就相当于按照顺序在一个圆圈里遍历了【3】代码// Test42.cpp : 此文件

2021-04-10 11:57:30 114

原创 【37】面试题44:扑克牌的顺子

【1】题目题目:从扑克牌中随机抽 5张牌,判断是不是一个顺子,即这 5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王可以看成任意数字。【2】思路首先把数组排序,再统计数组中0的个数,最后统计排序之后的数组中相邻数字之间的空缺总数。如果空缺的总数小于或者等于0的个数,那么这个数组就是连续的;反之则不连续。最后,我们还需要注意一点:如果数组中的非 0 数字重复出现,则该数组不是连续的。换成扑克牌的描述方式就是如果一副牌里含有对子,则不可能是顺子。【3】

2021-04-09 21:44:47 141

原创 【36】面试题43:n个骰子的点数

【1】题目题目:把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。【2】思路可以换一种思路来解决这个问题。我们可以考虑用两个数组来存储骰子点数的每一个总数出现的次数。在一次循环中,第一个数组中的第 n 个数字表示骰子和为n出现的次数。在下一循环中,我们加上一个新的骰子,此时和为 n 的骰子出现的次数应该等于上一次循环中骰子点数和为 n-1、n-2、n-3、n-4、n-5与 n-6的次数的总和,所以我们把另一个数组的第 n个数字设为前一个数组对应的第 n

2021-04-09 21:05:38 111

原创 【35】面试题42:翻转单词顺序 VS左旋转字符串

【1】题目题目一:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student.",则输出"student.a am I"【2】思路法,于是很快就可以跟面试官解释清楚解题思路:第一步翻转句子中所有的字符。比如翻转"I am a student."中所有的字符得到".tneduts a ma I",此时不但翻转了句子中单词的顺序,连单词内的字符顺序也被翻转了。第二步再翻转每个单词中字符的顺序,就得到了"stud

2021-04-09 11:55:03 117

原创 【34】面试题41:和为s的两个数字VS和为s的连续正数序列

【1】题目题目一:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,输出任意一对即可。【2】思路我们先在数组中选择两个数字,如果它们的和等于输入的s,我们就找到了要找的两个数字。如果和小于s呢?我们希望两个数字的和再大一点。由于数组已经排好序了,我们可以考虑选择较小的数字后面的数字。因为排在后面的数字要大一些,那么两个数字的和也要大一些,就有可能等于输入的数字s了。同样,当两个数字的和大于输入的数字的时候,我们可以选择较大数字前面的数字,因为

2021-04-09 11:06:15 55

原创 【33】面试题40:数组中只出现一次的数字

【1】题目题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是 O(n),空间复杂度是O(1)。【2】思路//异或运算 相同为1 不同为0//当异或的两个元素为1或者0的时候,结果为0或者1,int a = 1 ^ 1;//a=0//当异或的两个元素大于1时,结果为两个元素相加,int a = 1 ^ 2;//a=3这两个题目都在强调一个(或两个)数字只出现一次,其他的出现两次。这有什么意义呢?我们想到异或运算的一个性质:任何

2021-04-09 10:49:15 63

原创 【32】面试题39:二叉树的深度

【1】题目题目一:输入一棵二叉树的根结点,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。【2】思路如果一棵树只有一个结点,它的深度为1。如果根结点只有左子树而没有右子树,那么树的深度应该是其左子树的深度加1;同样如果根结点只有右子树而没有左子树,那么树的深度应该是其右子树的深度加1。如果既有右子树又有左子树,那该树的深度就是其左、右子树深度的较大值再加1。比如在图6.1的二叉树中,根结点为1的树有左右两个子树,其左右子树的根结点分别为

2021-04-09 10:46:38 147

原创 【21】printf()与sprintf()的区别

【1】基本概念 【1.1】 数据--------》屏幕 printf() printf_s() (1)printf只是检查format字符串是否为空。如果为空,会触发assert(false)。 (2)printf_s还会检查format字符串是否有效,即其中格式是否合法。如果不合法,也会触发assert(false)。 【1.2】数据--------》字符缓冲区 sprintf() sprintf_s() (1)sp...

2021-04-08 17:22:01 1680

空空如也

空空如也

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

TA关注的人

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