- 博客(131)
- 资源 (3)
- 收藏
- 关注

原创 Spm12 入门教程
下载MATLAB,以及对应的 SPM 版本。 SPM12 使用一种标准 3D(有些情况下是 4D)图像格式,称为 NIfTI-1.1。每个 NIfTI 格式的图 像是一个扩展名为“.nii”的文件。“.nii”文件包括: - 一个包含图像中所有数据的位图; - 一个将位图套入 3D 坐标体系的变换矩阵(称为仿射变换:如旋转,平移,缩放和/或 裁剪)。 一个时间序列(如 ...
2018-11-29 10:57:32
42549
56
原创 CUDA 共享内存 shared memory
_shared__此功能(与线程同步结合)有许多用途,例如用户管理的数据缓存、高性能协作并行算法(例如并行缩减),以及在原本不可能的情况下促进全局内存合并。
2024-10-16 14:35:00
576
原创 CUDA 全局内存
全局内存在片外。特点是:容量最大、延迟最大、使用最多全局内存中的数据是所有线程可见的,Host端可见,且具有与程序相同的生命周期。
2024-10-16 13:04:13
1085
原创 CUDA - 如何让线程和内存对应
之前的GPU线程数和数组的大小是相等的,如果说不相等的情况下,GPU每个线程处理的就不是一个运算,而是多个数据的运算。因为数组大小是16*8 =128,先定义每个块的维度是(4,4),所以可以计算得到网格的维度是(4,2)。因为数组大小是16*8 =128,先定义每个块的维度是(4,1),所以可以计算得到网格的维度是(4,8)。想要GPU充分发挥他的优点就是每个线程处理不同的数据,避免同一个线程处理多个数据,或者避免线程没有组织的胡乱访问内存。针对本文示例,网格块定义为(4,1),线程块定义为(4,1)。
2024-10-15 14:25:36
408
原创 CUDA 线程索引的计算
如下图:其中:线程是 CUDA 编程中的最小单位。每个线程块中都调用核函数,所以不同的核函数对应一个不同的线程,而每个线程都有自己的索引。其中, grid_size 、block_size 都可以配置一维、二维、三维。grid_size 是用来配置grid中 block 的规模/划分,而 block_size 是用来配置每个块block中 thread 的规模/划分。而在核函数中,通过关键字:gridDim 、 blockDim 获取主机中代码设置的grid_size 、block_size 值。通过
2024-10-14 14:05:47
1124
1
原创 CUDAExample: 点积运算 Dot Product
定义的变量将被存储在共享内存中。对于GPU上启动的每个线程块,CUDA C编译器都将创建该变量的一个副本。线程块中每个线程都将共享这块内存,但是线程却无法看到也不能修改其他线程块中的变量副本。这样就使得一个线程块中的多个线程能够在计算上进行通信和协作。因此,在访问共享你日常时的延迟要远远低于访问普通缓冲区的延迟,使得共享内存像每个线程块的攻速缓存或者中间结果暂存器那样高效。如果想要在线程之间进行通信,还需要一种机制实现线程之间的同步。关键字: __share__引入的概念:共享内存。
2024-10-10 22:16:28
227
原创 CUDAExample: 波纹示例
需要用到的已经封装好的辅助类: CPUAnimBitmap。定义个grid 和 block 的维度都是二维的。
2024-09-27 16:33:51
235
原创 基于GPU的Julia集应用程序
配置好CUDA编译环境之后,vs创建一个CUDA的项目,会自动包含一个.cu文件,可以在当前文件中编写。因为当前的项目需要用到其他的头文件和库,需要加入对应的路径,这个和别的工程是一样的。4. 拷贝DLL到指定的路径。
2024-09-24 15:54:51
349
原创 vtkNIFTIImageWriter 没有输出文件,没有报错
如题,在调试过程中输出 vtkImageData, 发现怎么也没有输出,一直在查是不是因为图像算法不对。查到最后发现是图像路径有问题,被自己蠢哭了。
2024-03-21 18:07:13
171
原创 QFormLayout 背景色设置不成功
layout 一定要放在QWidget 里面,然后设置QWidget 的背景色就好了。(图中的colour 拼错了)
2024-02-21 10:38:09
312
原创 [C++] sqlite3_get_table 的使用
不知道为啥 sqlite3 里面使用 “UPDATE” 更新数据,更新失败也不报错,所以就想绕过去。先查一下字段存在不存在,然后再update。
2024-02-06 17:37:31
1596
原创 [python-opencv] PNG 裁切物体
拿到一组图PNG的图,边缘有点太宽了,需要裁切一下,为了这个需求,简单复习一下基本语法。对于PPM,PGM或PBM,它可以是二进制格式标志,0或1.默认值为1。JPEG重新启动间隔,0 - 65535,默认为0 - 不重新启动。单独的亮度质量等级,0 - 100,默认为0 - 不使用。独立的色度质量等级,0 - 100,默认为0 - 不使用。将图像转换为单通道灰度图像且图像大小减少1/2。将图像转换为单通道灰度图像且图像大小减少1/4。将图像转换为单通道灰度图像且图像大小减少1/8。
2024-02-06 16:39:59
1370
原创 如何阻止空格键触发聚焦的 QPushButton
创建了一个项目,界面有一个QPushButton 和 QTextEdit, 每点击一个button , 计数器加一(默认为0)测试结果: (鼠标移开BUTTON之后 点击键盘的空格键,会响应button的点击事件)
2023-04-13 18:05:26
826
原创 Eigen: 求两个向量的夹角
//! Compute cosine of the angle between two vectors.double computeCosineOfAngleBetweenVectors( const Eigen::VectorXd& vector0, const Eigen::VectorXd& vector1 ){ assert( vector0.size( ) == vector1.si.
2021-11-05 11:44:25
1249
原创 C++ 如何使用结构体作为map的key
#include <iostream>#include <string>#include <map>using namespace std;struct StructTest{ std::string str1; std::string str2; double diameter; double length; StructTest() : str1(""), str2(""), diameter(0.), length(0.) {} S..
2021-10-27 17:54:19
3694
原创 Eigen: 绕着某个轴旋转指定角度
// 计算绕着某个轴旋转指定角度的旋转矩阵 Eigen::AngleAxisd v(dAngle, fixedAxis); Eigen::Matrix3d rotMatrix = v.matrix(); // 移动的其中一个轴 Eigen::Vector3d axi1Before; Eigen::Vector3d axi1After; axi1After = rotMatrix * axi1Before;...
2021-07-08 15:51:20
1903
原创 【编译问题】无法解析的外部符号
vs + qt突然发现程序不能编译错误提示:1>ClassName.obj : error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall ClassName::metaObject(void)const " ()1>ClassName.obj : error LNK2001: 无法解析的外部符号 "public: virtual void * __thiscall Cl...
2021-02-01 14:38:40
2013
原创 如何关掉 pyg解密小组声明窗口 (飘云阁番茄插件)
vs 重新安装番茄助手之后,替换了crack 里面的VA_X.dll。重启电脑,打开vs 弹出下面的窗口网上查了很多资料说什么要去DLL、清理注册表,都不管用。【原因】 安装的番茄小助手没有注册成功,需要将剪切板上的注册信息输入到番茄插件中...
2020-07-24 10:01:37
1499
1
原创 人体肝脏体积计算
正常成年人肝脏的平均积为1250.2±141.0 cm3,其与体表面积、身高、体重呈正相关,相关系数分别为0.96、0.90、 0.79.年龄、性别对成人肝脏体积大小的影响无显著性.由体表面积推导正常人群标准肝脏体积公式 为:LV(cm3)=613×BSA(m2)+162.8.体表面积(m2)=0.0061×身高(cm)+0.0128×体重(kg)-0.1529中国人适用的通式为体表面积S=0.0061×身高+0.0124×体重-0.0099. 如:身高...
2020-07-17 15:38:39
6457
1
原创 Eigen: 已知两个向量求他们之间的旋转矩阵
已知两个向量,其中一个向量由另一个旋转得到,求他们的旋转矩阵。Eigen::Matrix3d rotMatrix;Eigen::Vector3d vectorBefore(x, y, z)Eigen::Vector3d vectorAfter(a, b, c);rotMatrix = Eigen::Quaterniond::FromTwoVectors(vectorBefore, vectorAfter).toRotationMatrix();Eigen::Vector3d ..
2020-06-03 16:12:13
8665
1
原创 failed with error 126: 找不到指定的模块
BUG 场景描述:stl文件成功加载之后,在想要调用工具操作时,提示BUG 原因:程序进行过程中某处的dll没有加载成功
2019-12-06 18:22:55
1383
原创 DCMTK 入门
【DICOM】医学图像数据。DICOM的官方定义定义:医学图像或者相关数据的数据结构 网络服务(图像传输、PACS、打印、RIS-PACS) 存储媒体的交换 满足设备、程序需求数据结构病人信息(姓名、性别、UID···) 图像成像信息(设备参数、校准参数、dose(剂量)···) 图像信息(分辨率、窗宽窗位···)【DCMTK】它包含实现了标准DICOM大部...
2019-11-25 16:00:50
4202
原创 OPENGL - test 创建两个三角形,但对它们的数据使用不同的VAO和VBO
// 创建相同的两个三角形,但对它们的数据使用不同的VAO和VBO:#include "stdafx.h"#include <glad/glad.h>#include <GLFW/glfw3.h>#include <iostream>const unsigned int SCR_WIDTH = 800;const unsigned int ...
2019-06-14 15:27:42
695
原创 vtk ScalerType 值的解析
#define VTK_VOID 0#define VTK_BIT 1#define VTK_CHAR 2#define VTK_SIGNED_CHAR 15#define VTK_UNSIGNED_CHAR 3#define VTK_SHORT 4#define VTK_UNSIGNED...
2019-05-06 15:41:27
444
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人