自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (10)
  • 收藏
  • 关注

原创 Ubuntu20.04安装配置zookeeper和kafka,并使用flink读取kafka流数据存入MySQL

这里写自定义目录标题开发环境系统: Ubuntu 20.04软件架构:JDK 15.0.2 + zookeeper 3.6.2 + kafka 2.7.0 + flink 1.12.2 + mysql 8 + Maven 3.6.3IDE:IDEA + navicat1. 安装JDK2. 安装zookeeper配置系统环境变量添加启动3. 安装kafka4. 安装flink5. 安装MySQL6. 编写第一个flink+kafka程序maven 依赖创建学生类创建kafka类SinkToMySQLflink

2021-03-10 23:36:38 1228 1

原创 sitk医疗图像分割评价指标Dice,hausdorff distance

医疗图像分割评价指标主要有三个,包括掩码相似度指标Dice,Jaccard,Overlap和边界距离指标hausdorff distance,平均hausdorff distance。掩码相似度指标很好理解,hausdorff distance指的是两个掩码边界像素的最近距离集合中的最大值。sitk代码很简单,可以计算二维和三维的指标。gt = sitk.GetImageFromArray(gt, isVector=False)my_mask = sitk.GetImageFromArray(my_m

2020-12-14 22:49:18 3894 2

原创 类激活图Cam和GradCam原理解读,代码实例讲解

网上关于类激活图Cam以及梯度类激活图的讲解很多,但都不是非常全面,这里我就全面的介绍一下两者的原理,并讲解代码实现过程,最后通过一个实例进行演示。类激活图cam(class activation map)通过可视化的热力图将模型认为最显著的结果显示出来,因此可用于解释模型预测的结果。卷积神经网络的最后一层卷积层包含了最丰富的空间和语义信息,于是Cam充分利用了最后一层卷积的特征,并将后面的全连接层和softmax层替换成了GAP层(全局平均池化),用特征图所有像素的均值代替整个特征图的值。每个特征图Ak

2020-12-14 22:26:31 5315 2

原创 Python肺CT图像窗位窗宽调整

CT图像中,每个器官的窗位窗宽都不同,有时我们需要着重观察某个器官,只需调整他们的窗位窗宽即可,以下为肺的窗位窗宽调整。import numpy as npimport SimpleITK as sitk def window(img): win_min = -400 win_max = 1500 for i in range(img.shape[0]): img[i] = 255.0*(img[i] - win_min)/(win_max - win_mi

2020-12-13 21:56:36 3375 6

原创 sitk切片序列重采样归一化

由于扫描机器的差异,不同HRCT的切片序列层厚和切片间距离都不同。在进行自己的算法前需要将所有序列进行归一化,或者我们只想要其中的部分图片,这时就要对序列进行重采样。代码其实也很简单,下面的代码可以将Z轴的spacing更改为10mm,如果想更改X,Y方向的,只要改前面的两个参数即可。def ImageResample(sitk_image, is_label = True): ''' sitk_image: new_spacing: x,y,z is_label: if

2020-12-13 21:48:57 2719 1

原创 sitk三维体数据与二维切片互转(nii.gz转dcm和dcm转nii.gz)

在对医学图像数据进行处理时,通常我们会将原始的dicom序列转换为三维的体数据nii.gz格式,便于后序的处理。处理完后,可能又要转换为一张张dicom切片。其实使用sitk对nii.gz和dcm进行互转非常方便,几行代码就能搞定。dcm转nii.gzfile_path = './lung_img' #dicom存放文件夹series_IDs = sitk.ImageSeriesReader.GetGDCMSeriesIDs(file_path)series_file_names = sitk.

2020-12-13 21:32:17 5172 2

原创 ITK-snap进行分割区域标注、三维显示及改变显示颜色

在进行医学图像器官分割时,无论我们是用传统方法还是深度学习,最后肯定要用到手动分割的区域作为金标准来验证我们方法的精度。但是手动标注器官的轮廓是十分耗时的,这里我介绍一个比较简单的标注方法,以肺分割作为例子。我们使用ITK-snap作为分割标注工具。当切片间距离比较小时,比如1mm,一个患者的完整HRCT序列通常在200张以上,如果让医生一一进行分割区域标注是非常耗时乏味的。因此,我们可以使用最简单的阈值法比如OSTU,加上基本的形态学操作对肺进行粗分割得到粗略的分割掩码,在此基础上再手动的对分割结果进

2020-12-13 20:27:01 15122 25

原创 1. Pytorch入门教程——总览

最近正式开始学习深度学习,而现在最流行的深度学习框架自然是PyTorch。PyTorch是Facebook的官方深度学习框架之一,相信使用过的人都会被其轻便和快速等特点深深吸引,因此这个博客系列介绍了如何快速入门PyTorch。学习一门新的语言或者框架最快速的方法自然是边看代码边看教程,于是我遍寻GitHub,终于找到了一个既简单又详细的PyTorch入门教程。该教程提供了完整的代码并添加了详细的注释,一步步循循善诱的引导读者快速入门PyTorch。但教程中有一些错误而且是全英文注释,因此我将此教程进行了

2020-05-26 12:53:34 603 1

原创 9. Pytorch入门教程——在Kaggle给出的更大的测试集进行预测

原始的CIFAR10数据集有60000张图,其中训练集50000张,测试集10000张。然而,kaggle提供了300000张图的大型数据集用来测试CIFAR10.这里是kaggle网站关于这些图片的介绍:“为了阻止某些形式的作弊(如手动标签),我们在测试集中添加了290,000张垃圾图片。这些图片在评分中被忽略。我们还对官方的10,000个测试图像做了一些微不足道的修改,以防止通过文件哈希查找它们。这些修改不会明显影响得分。你应该预测所有300,000个图像的标签。”一、对于Kaggle测试图片,创建

2020-05-26 12:45:56 1158

原创 8. Pytorch入门教程——使用单个模型和集成模型在数据集上进行验证,预测

我们为最终的Densenet和Resnet模型加载两个文件,并在测试集上进行评估transfer_densenet = load_chkpoint('densenet_cifar10_chkpoint_file')load_chkpoint: best accuracy = 93.190set_transfer_model: self.Model set to DenseNetsetting optim Ada DeltaDenseNet: setting head: inputs: 1024

2020-05-26 12:38:20 3037 2

原创 7. Pytorch入门教程——在Cifar10数据集上训练两个不同的预训练迁移模型

现在我们可以继续进行测试和实验。但在此之前,我们应该将代码移动到.py文件并将其作为模块导入。**总共创建了四个文件:model.py (包含核心Network类)fc.py (包含FC类)cv_model.py (包含TransferNetworkImg类)utils.py (包含所有不属于任何类的实用函数)**我们还应该使用我们的Jupyter notebook的一个特殊指令,监视并重新加载所有导入的文件。如果我们出于某些原因(如修复bug)而修改任何文件,这将派上用场。from my

2020-05-26 12:37:04 1059

原创 6. Pytorch入门教程——创建一个派生自基类的迁移学习类

现在,我们准备创建从基类派生的迁移学习类。实现迁移学习现在会变得非常简单,因为所有需要的机制都已经到位了。迁移学习给予torchvision.models模块,包含支持下载和使用几个预先训练的计算机视觉网络架构。我们将添加三个模型的支持:Densenet121,简称DensenetResent34和ResNet50我们可以选择使用模型的预训练版本(默认 pretrained = True),我们可以获得架构+权重,或者仅仅是没有权重的架构,然后从头开始训练它们。大多数预训练版本在torchv

2020-05-26 12:32:50 408

原创 5. Pytorch入门教程——创建一个派生自基类的全连接类

现在,我们已经准备好创建第一个派生类,全连接神经网络。传统上,全连通网络被称为多层感知器(MLP)。在大多数深度学习框架(包括Pytorch)中,它们被简单地称为线性层。全连接网络依赖Pytorch nn.Linear模块nn.Linear模块由三部分组成:输入;全连接的隐藏层,每个隐藏层后面都有一个非线性转换(将非线性视为隐藏层的一部分,而不是将其视为一个单独的层);输出层和输出数量。一、全连接网络需求创建这样一个类需要下列需求:能够指定任意数量的隐藏层;能够指定模型的输入和输

2020-05-26 11:28:28 579

原创 4. Pytorch入门教程——创建一个基类来构建一个基本的神经网络

现在我们已经准备好了Dataloaders,之后要定义神经网络并训练它。为了定义一个神经网络,最好的方法是定义类来分离和抽象所有类型网络的通用功能,如训练循环,验证,评估,预测,设置不同的超参数等。我们还需要定义实现特定类型网络的类,例如专门用于迁移学习的类,或为全连接操作的类等等。记住这一点,我们将创建三个主要类:从Pytorch的核心类nn.Module派生的神经网络的基类,它是Pytorch中任何神经网络的基础;派生自我们创建的基类的一个类,实现迁移学习的功能;派生自我们创建的基类的一个类,

2020-05-26 11:24:50 1023

原创 3. Pytorch入门教程——数据集预处理,准备训练

在这个部分,将介绍以下内容:理解数据载入器的概念和Pytorch数据载入器API;将图片数据集分成训练,验证和测试集;创建Pytorch Dataloaders加载图片用于训练,验证和测试;使用Pytorch API来定义变换(Transforms)进行数据集预处理,更有效的进行训练;使用Pytorch API将所有图片转变成Pytorch Tensors;使用图片的平均值和标准差来归一化数据集。一、数据载入器(Data Loaders)1. Pytorch Dataloaders充当P

2020-05-26 11:20:55 10574 1

原创 2. Pytorch入门教程——创建Cifar10 Pytorch数据集

我们使用一个很经典的数据集Cifar10,而该数据集可以直接通过Pytorch内置函数获取到。一、导入所需的库import torch ## pytorchimport torchvision ## 迁移学习模型和许多其他视觉相关类from torch import nn ## Pytorch核心神经网络模型类from torch import optim ## 包含几个Pytorch优化器类import torch.nn.functional as F ## 包含几个Pytorch提供的实用函

2020-05-26 11:15:35 796

原创 医学图像处理常用的看图软件介绍及使用(RadiAnt DICOM Viewer、ITK-Snap和3D Slicer)

医学图像既可从二维查看也可从三维查看,本文将对作者认为比较好用的医学看图软件进行简单介绍,并作具体示范。作者常用的医学图像看图软件有RadiAnt DICOM Viewer、ITK-Snap和3D Slicer,这三个都可从网上下载到。在不同的场景下,不同软件的功能和便利程度都不同。一、RadiAnt DICOM Viewer这个软件主要用来看二维的.dcm切片,可以很方便的查看每张切片的图...

2020-04-19 20:30:53 34911 5

原创 ITK学习笔记——将处理得到的二维掩码输出为连续序列

我们用ITK对图像进行处理的时候往往先会将16位的原始图像转换为0~255的8位无符号整数,但是要想输出为原始连续的序列,还要将这些掩码结果重新转换为16位的原始图像格式。这个过程用ITK实现起来比较复杂,我会一步步进行讲解。一、读取dicom图像将读取的signed short图像归一化到0~255的unsigned char图像ImageType::Pointer readdicom(s...

2020-04-19 19:21:07 359

原创 ITK学习笔记——体数据读,序列dicom写

三维医学图像分别可从Axial、Coronal、Sagittal三个方向进行观察,常用的格式也有很多,最常见的就是dcm格式,代表一张切片。为了方便处理,通常在三维上直接对图像进行处理,常用的三维体数据格式有比如nii.gz、mhd、nrrd。但有时我们对三维体数据处理完后不可避免的要对每一张切片进行观察或者后处理,这样就要将一个三维体数据转换成二维的序列。下面我们用ITK将nii.gz体数据转...

2020-04-19 18:51:58 1266

原创 python使用nibabel和sitk读取保存nii.gz文件

nii.gz格式是医学图像常用的压缩格式,python中可用nibabel和sitk来读取保存。使用nibabel由于使用nibabel图像会旋转90度,所以读取保存的时候还得保存映射信息,3维图像格式为(z, y, x)读取nii.gz文件img = nib.load('xxxxx.nii.gz')img_affine = img.affineimg = img.get_data(...

2020-01-03 11:08:55 12557 6

原创 ITK学习笔记——OSTU自动选取最佳阈值进行二值化

原理介绍:Ostu大律法方法又名最大类间差方法,通过统计整个图像的直方图特性来实现全局阈值T的自动选取,其算法步骤为:先计算图像的直方图,将图像所有的像素点按照0~255共256个bin,统计落在每个bin的像素点数量;计算每个像素值的比例;i表示分类的最佳阈值,从0开始迭代;以i为阈值分类,计算第一类和第二类总的概率w0,w1,计算第一类的平均灰度和第二类的平均灰度以及整幅图像的平均...

2019-08-13 17:06:18 1244

原创 ITK学习笔记——中值滤波和均值滤波

均值滤波和和中值滤波都可以起到平滑图像,虑去噪声的功能。均值滤波采用线性的方法,平均整个窗口范围内的像素值,均值滤波本身存在着固有的缺陷,即它不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊,不能很好地去除噪声点。均值滤波对高斯噪声表现较好,对椒盐噪声表现较差。中值滤波采用非线性的方法,它在平滑脉冲噪声方面非常有效,同时它可以保护图像尖锐的边缘,选择适当的点来...

2019-08-12 08:54:36 1077

原创 ITK学习笔记——VTK简单可视化

由于ITK不支持可视化,处理完后必须先写入文件才能查看结果,我们可以结合VTK将处理结果可视化,快速查看图像处理结果。这里举一个简单的例子,读取dicom图像,并rescale到0~255,然后VTK显示结果。有两种方式显示结果: viewer.AddImage(image.GetPointer()); viewer.AddImage(rescaleFilter->GetOutput...

2019-08-11 21:29:45 1372

原创 ITK学习笔记——dicom序列读取写入

由于dicom通常都是一系列的图片,为方便后续处理,需要一次性将许多dicom图像一起读取写入。维数变成了三维,除了长宽,多了切片数。#include "itkGDCMImageIO.h"#include "itkGDCMSeriesFileNames.h"#include "itkImageSeriesReader.h"#include "itkImageSeriesWriter.h"...

2019-08-11 21:16:52 2387 2

原创 ITK学习笔记——dicom读取写入

ITK毕竟是医学图像处理专用,主要还是处理dicom医学格式的图像。dicom数据类型为signed short型。#include "itkImageFileReader.h"#include "itkImageFileWriter.h"#include "itkGDCMImageIO.h"#include <list>#include <fstream>...

2019-08-11 19:30:54 4147 1

原创 ITK学习笔记——RGB图像读取写入

RGB图像读取写入属于ITK基本操作,比较简单,直接套用下面代码即可,由于ITK不支持可视化,所以需要将处理完后的图片写入文件中打开查看,所以只需要改下面代码中的输入输出路径即可。#include "itkRGBPixel.h"#include "itkImage.h"#include "itkImageFileReader.h"#include "itkImageFileWriter.h...

2019-08-11 19:06:26 374

原创 vs2017编译安装ITK-5.0.1+VTK-8.2.0,混合编程,读取图像并显示

ITK提供了完整的读取DICOM图像的方法,但不能实现可视化,VTK是一套进行数据可视化但通用开发工具包,所以在应用ITK进行图像读取和处理后,往往再利用VTK进行可视化。

2019-07-31 14:00:42 3287 9

原创 七、opencv学习笔记——区域生长算法

简要介绍了区域生长算法原理,并基于opencv进行了一个实例分析。

2019-07-27 22:16:05 4686 3

原创 Ubuntu 18.04安装GPGPU-Sim,运行ispass-2009 benchmarks

最近做实验要搭建GPGPU-Sim环境,无奈这个软件太过小众,官网教程也不明确,百度只查到大光叔叔在2015年发的比较完整的安装方法(大光安装方法),但安装的Ubuntu版本太过老旧,还是server版本,太不友好了。遂谷歌之,找了几个比较方法,折腾了大半天,最后终于在Ubuntu 18.04中安装成功,事实证明Ubuntu版本不重要,主要是cuda和gcc、g++版本要安装正确。现将完整步骤分...

2019-06-11 23:05:54 2588 2

原创 二、opencv学习笔记——MAC下安装配置opencv+contrib

在MAC下安装配置opencv+contrib,我也是踩了很多坑。不像Windows可以直接拿别人编译好的库在VS中配置就行,MAC由于最后要在终端配置,会自动查找编译路径,所以必须要自己一步一步来。下面先说一下我遇到的几个问题:一、configure过程中会出现文件无法下载问题,由于是外网下载,速度可能很慢会导致无法下载,主要是ippicv文件,有教程说可以先从网上下载对应文件放入根目录co...

2019-05-31 16:31:47 4565 1

原创 五、opencv学习笔记——opencv组件分析

【opencv_modules.hpp】 ——定义的是OpenCV2所有组件的宏【calib3d】——其实就是就是Calibration(校准)加3D这两个词的组合缩写。这个模块主要是相机校准和三维重建相关的内容。基本的多视角几何算法,单个立体摄像头标定,物体姿态估计,立体相似性算法,3D信息的重建等等。【contrib】——也就是Contributed/Experimental Stuf...

2019-05-30 10:28:14 271

原创 六、OpenCV学习笔记——常用函数解析

一、MatMat是OpenCV里最基本的一个类,用来表示图像。 // 默认构造函数 Mat A; Mat () // 常用构造函数 Mat A(10,10,8UC3); Mat (int rows, int cols, int type) //Mat A(300, 400, CV_8UC3,Scalar(255,255,255)); Mat (i...

2019-05-16 20:40:50 309

原创 一、OpenCV学习笔记——win10、mac和Ubuntu16.04安装OpenCV以及IDE配置

一、下载和安装OpenCVwin10中下载和安装OpenCV下载地址下下来是一个.exe解压文件,解压。解压出来主要包含两个文件夹配置环境变量path中添加环境变量:D:\app\opencv\build\x64\vc15\binUbuntu16.04下载和安装OpenCV选择Linux版本二、IDE配置OpenCVVS2017配置OpenCV1)项目中右...

2019-05-16 10:48:30 384

转载 四、OpenCV学习笔记——深入理解指针

这篇内容跟OpenCV关系不大,但对于c++初学者有很大的帮助。转载自 https://blog.csdn.net/xierhacker/article/details/81078065一、指针概念指针是一个变量,存储的是地址。 所以指针本质是一个地址!看到指针条件反射想到地址。对于一个常规变量,&运算符就能够取得他的地址。所以一个变量var,那么&var就是一个地址。...

2019-05-07 22:07:48 167

原创 三、OpenCV学习笔记——foreach循环

OpenCV中使用forEach进行并行像素访问之前对forEach用法一直不懂,后来发现Mat类的forEach方法接受一个函数操作符。void cv::Mat::forEach (const Functor &operation) 需要先定义一个函数对象:struct RGB2LABOperator{ void operator()(Pixel &pixel, ...

2019-05-05 11:01:44 1743

原创 Automatic cell segmentation in histopathological images via two-staged superpixel-based algorithms翻译

这是2018.09收录的一篇文章,关于用超像素的方法进行病理图像分割。下面是翻译摘要从高分辨率数字组织病理图像中分析细胞特征是诊断和预后癌症标准的临床实践。然而,病理医生用这种方法手工检查细胞结构是一个相当累人的过程。将这一繁琐而耗时的过程自动化是组织病理学图像处理研究的新兴课题。本文提出了一种两级分割的方法来获得高维肾细胞癌组织病理图像的细胞结构。首先,使用简单线性迭代聚类(SLIC)方法...

2019-04-01 15:24:45 848

转载 Fine-tuning Convolutional Neural Networks for Biomedical Image Analysis: Actively and Incrementally

Fine-tuning Convolutional Neural Networks for Biomedical Image Analysis: Actively and Incrementally如何使用尽可能少的标注数据来训练一个效果有潜力的分类器今天我给大家介绍一下 CVPR 2017 关于医学图像处理的一篇比较有意思的文章,用的是 active learning 和 increment...

2019-03-22 09:32:23 145

原创 用逐步微调深度神经网络进行胃部病理图像分类

这几年,深度神经网络在医学图像方面得到了很好的应用,但是由于医学图像的专业性,一直没得到广泛的实际应用。首先,医学图像由于隐私性,用于深度神经网络的数据不可能有很多,另外医学图像专业性强,标注成本高。为了解决这些问题,本文提出了用逐步微调深度神经网络进行胃部病理图像分类的方法。

2019-03-13 21:04:30 1458 2

原创 ubuntu16.04下安装anaconda+nvidia显卡驱动+cuda-gpu+cudnn+tensorflow-gpu+pyrorch详细过程

一、安装anaconda1.首先到官网上下载linux版本的anaconda2.cd到anaconda.sh的目录bash bash ./Anaconda3-5.2.0-Linux-x86_64.sh3.一直按enter,输入yes,选择安装路径,这里选择home下新建的install文件夹/home/superlinc/install/anaconda34.设置将Anaconda...

2019-03-05 21:47:52 1133

原创 ubuntu 16.04 硬盘分区,挂载,硬盘分区方案

ubuntu 16.04 硬盘分区,挂载一、硬盘分区1.查看硬盘及所属分区情况sudo fdisk -lu显示当前的硬盘及所属分区的情况。如下图所示:图中有两块硬盘,我们要对第二块硬盘进行分区。2.对硬盘进行分区sudo fdisk /dev/sdb如下图所示,可按m获取帮助:3.在提示符后面输入n,然后输入p,设置主分区,分区号输入1,起始块默认2048,终止块大小自己定义...

2019-03-02 21:37:48 40374 1

ITK-5.0.1库下载地址.txt

ITK-5.0.1库下载地址,编译好的ITK-5.0.1库,可以直接安装使用,省去CMAKE长时间编译。

2020-03-30

VTK-8.2.0编译好的库

VTK-8.2.0编译好的库,如果不想花太多时间编译,可直接用这个,vs2017编译。由于只能上传200M以下文件,所以放下载地址。

2019-07-31

opencv_3rdparty-ippicv-internal_3.4_20190204

windows,linux,mac所有opencv_3rdparty-ippicv-internal_3.4_20190204库

2019-05-29

Automatic cell segmentation

本文提出了一种两级分割的方法来获得高维肾细胞癌组织病理图像的细胞结构。首先,使用简单线性迭代聚类(SLIC)方法将图像分割为超像素。然后,用最先进的基于聚类的分割算法对获得的超像素点进行聚类,找到组成细胞核的相似超像素点。此外,还比较了基于全局聚类的分割方法和基于局部区域的超像素分割方法。结果表明,与简单的单聚类分割算法相比,采用超像素分割算法作为预分割方法提高了细胞分割的性能。采用真阳性率(TPR)、真阴性率(TNR)、F-测量、精确度、覆盖率(OR)测度作为分割性能评价指标。文中还对算法的计算时间进行了评估,并给出了计算结果。

2019-04-01

用逐步细调深度神经网络进行胃癌病理图像分类

医学图像由于隐私性,用于深度神经网络的数据不可能有很多,另外医学图像专业性强,标注成本高。为了解决这些问题,本文提出了用逐步微调深度神经网络进行胃部病理图像分类的方法。

2019-03-13

Gastric Pathology Image Classification Using Stepwise Fine-Tuning

医学图像由于隐私性,用于深度神经网络的数据不可能有很多,另外医学图像专业性强,标注成本高。为了解决这些问题,本文提出了用逐步微调深度神经网络进行胃部病理图像分类的方法。

2019-03-13

FPGA AD采样

基于FPGA的AD采样程序,内附详细的说明文档以及测试截图

2015-09-21

xilinx官网的pcie参考,xapp1052

xilinx官网的pcie参考,xapp1052

2013-12-20

PCIe的DMA实现源代码

Xilinx PCIe 带 DMA,烧入V5平台验证过的,内有pdf文档详细的教程,windows驱动和应用界面也在里面,全面的一目了然的资料。

2013-11-21

PCI局部总线

PCI局部总线

2013-10-08

空空如也

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

TA关注的人

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