自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不拱地的猪的专栏

专注于C++语言开发放射治疗领域的小项目

  • 博客(40)
  • 资源 (6)
  • 收藏
  • 关注

原创 怎样使用树莓派自己搭建一套ADS-B信号接收系统

树莓派4B,4G足够,MicroSDCard32GSDR接受硬件RTL2832天线,自己可以做137mm半波长DP天线就可以,馈线(SMA接口)高频放大器(可以没有,有效果更好)还要有网络1首先是安装树莓派的操作系统,注意,树莓派最好配一个5V3A,15W的电源,确保树莓派稳定工作。我选择的是使用RaspberryPi烧录器来写SD卡,版本是最新的v1.8.5。选择的是64位的RaspberryPiOSLite系统,很小,只有0.4G大小。在烧录入之前选择好WIFI的设置,然后烧录。

2025-01-20 15:30:31 1369

原创 VTK读取SLC文件并显示

SLC文件常常用来作为3D打印的数据文件,SLC 是 Stereo-Lithography Contour(立体光刻轮廓)的缩写,是一种将三维模型保存为一系列切片的文件格式。SLC 文件是 ASCII(文本)文件,使用折线来描述三维模型的二维轮廓。

2025-01-10 18:44:01 826

原创 使用VTK来显示分子结构

使用VTK读取pdb数据,进行显示和渲染

2025-01-10 16:18:00 281

原创 使用C++语言开发VTK项目的灵活性

比如上面一篇使用VTK来显示函数图像的小项目,我们使用了图像迭代器来给图像中的数据赋值。今天我们使用另外的一种方法,直接使用vtkImageData中的指针来赋值。为了显示函数的3D图像,我们要先把函数表示成标准形式。比如一个球体,我们知道球体表面坐标点的定义是空间中的点(x,y,z)到球心的距离等于它的半径,数学语言就是。这样我们使用vtkMarchingCubes时,就可以直接取到等值面为0时,此时等值面就是需要显示的函数。使用上面一篇文章中的显示代码,我们就可以看到函数在3D空间的样子了。

2024-11-20 15:39:31 253

原创 使用VTK来显示3维空间中的函数

我们想在VTK中显示它,就需要计算每个空间点的数值。我们打算在x,y,z三个方向都取-10~10的范围,每个方向的采样点维201个,这样空间分辨率就是0.1。这样可以方便的计算x,y,z三个坐标的数值。然后使用MarchingCubes方法,让f(x,y,z)=0就可以得到Peaks函数了。用这种方法,你可以使用VTK显示很多3D空间的函数,有助于你深刻的理解函数的形状和性质。然后通过imageIterator的方法来为每个格点计算该点的数值。最后就是显示的函数图像了,在3D空间。我们把它变成标准形式。

2024-11-19 11:19:44 325

原创 使用C++来编写VTK项目时,就是要写自己的算法

比如我们写一个滤波算法,有一堆噪音的数据,然后我们想进行表面重建,显然重建后的表面不好看,因此我们先对数据进行平滑处理。进行算法的测试,我们使用一个spheresource创建数据,再给它加上噪音。我们假设X和Y是直角坐标系平面上的点,x和y的间距相同。将平面上的一个点,于它四周的四个点进行平均,然后得到这个点的数值。就用这个办法,我们取一个点的四周的四个点,将这四个点的坐标相加,然后取平均,给中间的点,成为中间这个点的坐标。其实,使用VTK可以使用很多种语言,比如java,python,和C++。

2024-11-07 18:06:07 367

原创 VTK的一个例子,颜色很鲜艳

看到了一个例子,感觉挺好的。是一个学习给points或者是说polydata数据添加颜色标量的一个好方法。根据数据点的Z方向的数值,如果是最大值就显示兰色,最小值显示红色。利用Z方向最大值和最小值创建一个lookuptabel,然后使用z方向的数值进行查表,查到对应的颜色。将颜色映射到0-255数值范围内,添加到一个Array中,然后将该array以scalar方式添加给polydata数据。最后显示,是一个很好的例子。delaunay 算法接受的是points数据,这个需要注意。

2024-10-28 23:05:11 209

原创 VTK Animation (动态模拟)

突然想到了,VTK有动态模拟功能,模拟一个月亮绕着太阳旋转,自己自转的一个小项目,供大家一笑。

2024-10-23 14:49:08 264

原创 VTK的学习方法-第二类型应用

我们的算法一般是继承VTK里面的vtkpolydataalgorithm,然后自己添加一些变量,重写(override)里面的requestdata方法。VTK的高级使用方法是自己写一个算法(Filter),本文使用的数据类型位polydata,这个数据类型应用比较广泛。图1 结果,绿色的是原始平面,红色是经过增加噪声后的平面。我们写一个增加噪声的方法吧。然后是这个类的requestdata部分。然后我们应用一下这个算法,看看结果如何?

2024-10-19 22:43:23 319

原创 VTK的学习方法-第一类型应用

相信很多做研究的人都在使用VTK,其实VTK的学习分成两类。一类就是使用VTK中现有的算法来完成自己的工作,比如数据的显示和渲染。另外一类是需要继承里面的算法类,自己根据自己的需求来重新写一个算法。对于第一种类型的应用,不要觉得使用C++来写代码会很复杂,其实不复杂。此种应用一般都是从数据源出发,然后顺着数据流管线一路往下走,最后显示。下面的一个例子,就是这样的一个简单的应用,使用了AppendFilter算法。图1 简单的VTK管线流。

2024-10-18 17:24:47 374

原创 读取Varian OBI 采集的hnd格式图像

Varian的CBCT它叫OBI,其图像格式很奇特,是hnd格式。HND 文件格式是 HelpNDoc 使用的一种项目文件格式,它基于 SQLite 数据库格式。HND 格式包含优化功能,可加快磁盘读写操作。文件格式定义了文件中数据的结构。每种文件格式都有一个唯一的扩展名,几乎都有一个唯一的签名。例如,Microsoft Word 文档的扩展名是 .docx,签名(通常是文件的前 3 个字符)是 PK。文件扩展名、签名和文件格式必须匹配,否则打开文件时就会出错。

2024-10-18 06:48:02 439

原创 读取Elekta(医科达)CBCT采集的HIS图像

这篇文章是放射物理相关文章。

2024-10-14 23:19:48 1509 6

原创 使用C++写一个自己定义的图像格式,写入磁盘

看到OpenCV的Image类实例一副图像,觉得挺好玩,因此想自己定义一个自己的图像类,让后完成写盘,并且读取出来。这里我们的像素是1024X1024 16位,因此,它的大小为2097152,然后在Image中的ID,rows和cols都是16位,所以共占用6个字节,因此,整个文件就是2097158个字节。最后,如果你使用的是Mac Sonama 14.1系统的话,使用QtCreateor的IDE的话,有时候你运行程序就会出现如下提示。不要慌张,把你的输入法切换到英文就行了,再次运行就没有这个抱怨了。

2024-10-09 22:43:42 484

原创 一个读取CT图像序列,并进行表面重建的C++代码

这篇文章中,介绍使用VTK进行读取CT图像(一个序列),然后进行表面重建。为什么不使用DCMTK呢?因为使用DCMTK需要一张一张读取,要自己写一个代码,还要创建一个容器来放读入的CT数据,比较复杂。在实际的工程中,我们需要寻找合适的工具来造出漂亮的项目。

2024-10-08 16:45:46 1113

原创 继续手搓DICOM解析 (3)

但是这个TAG标签我们解析成了(ffe0,0010),其实应该是数据范围问题,读取使用的是char类型,它的范围是-127到127,如果是0到255就不会出现这个问题了。这个手搓项目基本完成了,除了最后一个Tag [7fe0,0010]这个有问题之外,其他的基本正确吧,有这方面的专业人员可以在评论区或者是私信中指导一下。这个DICOM文件呢,是BrainLab计划系统里面导出的图像,相对于CT机里面dicom出来的数据简化了很多信息,因此本文使用了此数据。里面的重点是数据类型,小端字节序,指针传递。

2024-10-06 11:53:26 495

原创 继续手搓DICOM文件解析 (2)

是不是差不多了,我们可以看到数据是的行和列都是512,数据是16位数据,但是大家看到没有,最后的图像数据,TAG是【ffe0,0010】,实际上,使用DCMTK解析应该是7fe0,0010我也不知道哪里出错了,而且我也没有解析出数据的长度。OW是对的,到nema主页去查询,这个与传输与法有关联。接下来我们会发现VR的数值变成US类型,此时就需要使用getShort函数来读取数值了,因为该数值是unsigned short 类型。书接上回,我们使用了简单的函数进行了DICOM文件的解析,那么我们就继续吧。

2024-10-05 21:54:19 422

原创 想知道为什么有DICOM格式,YAML格式,XML格式,JSON格式吗?

比如DCMTK可以处理DICOM格式的数据,OpenCV可以处理Yaml格式的数据,Java可以处理Json格式的数据。例如,如果您读取的是二进制结构,而您必须将其中一个字段的类型从 int(或 int32_t)改为 long(或 int64_t),那么您的二进制数据文件将毫无用处(除非您编写了特定的转换例程)。我们都知道,现在的操作系统有很大概两种,Win派,UNIX派(Mac,Linux和Arm),如果您在不同的机器之间交换二进制文件,二进制数据会被当作垃圾读取(例如,由于字节序和字大小的不同)。

2024-09-30 22:05:56 694

原创 学习VTK的目的和方法

对于有科研需求的小伙伴,可以利用VTK将你的数据和实验结果进行可视化,对数据有一个感官的理解。比如下面的图像就是一个细胞分裂增殖的模拟图像,使用VTK对数据进行了可视化。3图1 细胞克隆增殖的模拟。VTK就是一个工具,不用刻意的去学习它。假如你不做数据的显示,也不需要做3D模型的渲染,你就不用去学习它,因为学习任何事物都是需要学习成本的。我们模拟一下太阳光线照射到地球上,然后有反射的情况,其实就是一个光线追踪算法。在代码中有详细的说明,等有空我会讲解一下。

2024-09-30 18:36:34 585

原创 VTK 与 OpenCV 的区别和各自的特点

VTK更适合于需要将数据可视化为三维图像的场景,例如医学影像、科学模拟等。OpenCV更适合于图像处理和计算机视觉任务,如图像识别、物体检测等。两者可以结合使用:可以使用OpenCV对图像进行预处理,然后使用VTK将处理结果可视化。可以使用VTK生成三维模型,然后使用OpenCV对模型进行特征提取。选择合适的工具取决于具体的应用场景和需求。

2024-09-29 07:20:31 1302

原创 VTK 体渲染(2)

【代码】VTK 体渲染(2)

2024-09-28 20:00:10 290

原创 VTK-(1)

是一款功能强大、开源的3D计算机图形学、图像处理和可视化软件系统。它为创建、操作和渲染3D图形提供了一套丰富的类和算法。

2024-09-28 19:54:19 1058

原创 DICOM文件的格式详细解说(1)

DICOM要到这里面看,这是标准委员会制定的标准,同时也在与时俱进,不断的进行新的数据格式更新。

2024-09-27 22:39:40 1509

原创 怎样利用DCMTK工具包将图片(jpeg)转换成DICOM文件

DICOM 工具包 (DICOM Toolkit, DCMTK) 自 1995 年推出以来,对任何使用医学数字成像和通信 (DICOM) 标准的系统工作者都很有帮助。这本 DCMTK 简介对首次探索 DICOM 的人以及熟悉 DICOM 但想重新了解 DICOM 工具的人都很有帮助。DCMTK 是为各种平台开发的,由 20 多个开源 C/C++ 库和实用程序组成。DCMTK 由德国奥尔登堡信息研究所 OFFIS 赞助,并得到了许多欧洲组织和世界各地其他组织的支持。

2024-09-24 23:43:25 1269

原创 什么是 DICOM

DICOM 标准已被医院和医疗软件行业广泛采用,比如诊所和CT生产商(GPS),GE,Philips,和Siemens等。对于非 OB、OW、OF、SQ、UT 或 UN 的显式值表示(VR)数据元素[需要说明],每个数据元素的格式为: GROUP(2 字节) ELEMENT(2 字节) VR(2 字节) LengthInByte(2 字节) Data(可变长度): GROUP(2 个字节) ELEMENT(2 个字节) VR(2 个字节) LengthInByte(2 个字节) Data(可变长度)。

2024-09-14 10:49:04 1580

原创 Gtk-Message: 14:47:21.541: Failed to load module “canberra-gtk-module“ 的处理方法

最近研究读取Elekta加速器XVI产生的his格式的数据读取,利用OpenCV 进行显示时,发现了一个错误(Ubuntu20)如下:Gtk-Message: 14:47:21.541: Failed to load module "canberra-gtk-module"这个提示可能是缺少canberra-gtk-module模块没有安装。作为新一代青年,上网搜索才是解决方法。上网搜索得知,我的判断是对的,于是sudo apt-get install libcanberra-gtk*神.

2021-04-06 15:14:32 1847

原创 在Mac OS 上安装OpenCV4.5.1时没有SIFT和SURF算法的处理方法

在Mac OS 上安装OpenCV4.5.1时,下载的是源代码,进行本地编译和安装。安装好了之后,使用以前写的image stitching的代码进行测试,本以为会风平浪静,没想到弹出错误:xfeatures2d/src/surf.cpp:1029: error: (-213:The function/feature is not implemented) This algorithm is patented and is excluded in this configuration; Set OPEN

2021-03-17 14:58:24 1192 1

原创 macOS 上面 brew 安装软件无法写入的处理 Error: Could not create /usr/local/Cellar  

brew install opencv报错如下: Error: Could not create /usr/local/Cellar Check you have permission to write to /usr/local这是因为你可能使用了ports安装了软件(我是安装过vtk),因此你的/usr/local目录被锁了,解决办法就是,你在命令行终端输入: sudo chown -R $(whoami):admin /usr/local 然后再执行brew install o...

2020-08-14 09:18:43 563

原创 Install Geant4.10.06.p01 on MacOS Catalina

在Mac上面安装geant4,主要是写代码,看看探测器的结构,粒子发射的位置,产生的粒子等。一般情况都会在Linux主机上面,或者是Cluster上面,非图像界面跑数据的。但是就是想在Mac上面装,我愿意呀。然而安装的时候一定要按照安装手册进行配置。首先要有brew,这个如果你不会,你在网上搜,一搜一大把。推荐官网:https://brew.sh,免得被骗掉坑里。如果要运行geant4,而且使用Qt界面显示(好用,强烈推荐),你要装Qt。1 首先要装OpenGL的库,到官网https://ww.

2020-07-30 22:31:50 762

原创 ITK install with IIKVtkGlue Module in Cmake Configure

ITKVtkGlue is a module in ITK, which by default is not built. You need to enable this module with cmake when you build ITK. Also, before you do this, you need to download, build and install VTK (which is very similar to building ITK) first. Assuming you ar

2020-05-31 09:39:33 304

原创 如何更新Ubuntu Linux 中CMake 的版本

在编译Geant4相关项目的时候发现对CMake的版本要求是3.9以上,但是通过update和upgrade的操作之后CMake的版本还是停留在3.5的状态,那就只能使用源码的方法安装了。具体的操作过程如下:1.下载CMake打开cmake官网,或者直接点击 cmake3.12-linux版本地址下载。2.安装注意本文使用的是3.12版本,在安装的时候使用跟自己下载的版本对应的...

2020-04-21 16:36:00 1225

原创 VTK 体重建代码

有时候使用表面重建不能显示细节。因此使用VolumeRender才好。见代码:#include "base.h"void show(vtkSmartPointer<vtkRenderer> renderer){    // show the renderer window using passed renderer object.    vtkSmartPointer<vtkRe...

2018-06-01 16:59:38 455

原创 Numpy 和 scipy 的安装

Numpy he scipy 的安装scipy的安装需要依赖于numpy、lapack、atlas(后两者都是线性代数工具包,不清楚的自行google之。。。),而numpy和sci的测试程序的运行又依赖于nose,因此,整个安装过程必须要按顺序执行的,否则是无法执行下去的。安装详解:1、先安装nose包。sudo apt-get install python-nose11这个

2017-06-09 09:36:06 412 1

原创 ubuntu 14.04 添加新硬盘

1 关机,安装新硬盘。然后上电开机。2 检查是否检测到了新硬盘:@Physics-Precision-WorkStation-T5400:~$ ls -l /dev/sd*brw-rw---- 1 root disk 8,  0  5月 23 09:20 /dev/sdabrw-rw---- 1 root disk 8,  1  5月 23 09:20 /dev/sda1brw

2017-05-23 10:53:45 5463

转载 ax+by+c=1 & a^2+b^2=1 why?

Line through two pointsThe line through two distinct points (x1, y1) and(x2, y2) is given by(1)y = y1 + [(y2 - y1) / (x2 - x1)]·(x - x1),where x1 and x2 are assumed to be differe

2016-10-12 16:16:59 411

转载 MATLAB: 3d reconstruction using eight point algorithm

I am trying to achieve 3d reconstruction from 2 images. Steps I followed are,1. Found corresponding points between 2 images using SURF.2. Implemented eight point algo to find "Fundamental mat

2016-09-21 13:44:02 945

转载 ct Reconstruction

Hello everyone,I am trying to reconstruct an image from a projection data mat file. It consists of data with 256 angles of projection. This is the program that I wrote to reconstruct the image. I need

2016-09-06 09:32:43 769

转载 computer vision-calculate fundamental matrix

If you are using one of the calibration images, then all the information you need is in thecameraParams object.Let's say you are using calibration image 1, and let's call it I.First, undistort the

2016-09-02 15:46:44 562

原创 Linux系统中Java版本选择

Linux系统中,如果安装有多个Java版本时(有时候有些软件自行安装),怎样方便的进行切换呢:update-alternatives --config javaupdate-alternatives --config javac例如:[Jack@localhost ~]$ update-alternatives --config javaThere are 2 pro

2016-09-01 14:11:03 1918

转载 mac +opencv +java

之前一篇文章是通过brew的方式安装openCV在mac机器上,在这种情况下默认是没有安装openCV的java环境的,本文讲述如何在Mac OSX上安装opencv和JAVA的环境。本文不是采用的opencv官网上面的编译的方式,是通过MacPorts的安装方式[如果你的mac还没有macports,可以点击这里进行安装],步骤也很简单,如下:1、sudo port selfup

2016-09-01 13:49:26 533

原创 GradeDescent algorithm (Matlab Code)

clc;clear;%set dataX=[3 6 4 7 2 8 5 1];Y=[12 18 15 28 6 16 14 13];esp=0.0003;gamma=0.001; %ratew_old=zeros(size(X',2),1);k=1;figure(1);while 1    minJ_w(k)=1/2*(norm(X'*w_old-Y

2015-12-16 20:57:25 450

用来替换掉GOOGLE的地图的一个页面代码,网友写的,你可以下载来看看!

用来替换掉GOOGLE的地图的一个页面代码,网友写的,你可以下载来看看!

2025-01-20

readslc代码需要的数据文件

readslc代码需要的数据文件

2025-01-10

文章配套数据,使用VTK显示渲染分子结构

pdb文件,分子结构描述文件。

2025-01-10

Elekta (医科达加速器)XVI生成的投影图像,用来做算法数据

Elekta (医科达加速器)XVI生成的投影图像,用来做算法数据

2024-12-02

创建vtkImageData并且显示

创建一个vtkImageData数据结构,同时得到每一个cell的中心,在中心处使用小球占位。

2024-11-20

VTK数据显示(高度颜色标注)

VTK数据显示(高度颜色标注)

2024-11-20

VTK显示函数(比如matlab中的peaks函数)

VTK显示函数(比如matlab中的peaks函数)

2024-11-20

关于博文“一个读取CT图像序列,并进行表面重建的C++代码”的附带资料

关于博文“一个读取CT图像序列,并进行表面重建的C++代码”的附带资料

2024-10-08

文章配套使用的DICOM文件,已经匿名化

文章配套使用的DICOM文件,已经匿名化

2024-10-06

读取DICOM文件的C++小项目

读取DICOM文件的C++小项目

2024-09-26

生成的dicom数据,文章配套数据

生成的dicom数据,文章配套数据

2024-09-24

文章配套数据,原始图片

文章配套数据,原始图片

2024-09-24

RD.SRSZFY.Plan1.dcm

放射治疗中,计划系统中导出的剂量文件。

2021-06-04

RP.SRSZFY.Plan1.dcm

放射治疗计划系统到处的计划文件。

2021-06-04

RS.SRSZFY.CT_1.dcm

结构文件

2021-06-04

Elekta加速器XVI产生的his格式文件

Elekta加速器XVI产生的文件

2021-04-06

oneslice_sample.dcm

CT图像(dicom格式)一张,用来测试

2021-03-17

patch.zip for opencv contrib

needed by the opencv contribution part installed on ubuntu18.04 using cmake

2020-09-08

空空如也

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

TA关注的人

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