自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 3D Slicer实战:解决大层厚CT冠脉分割断层与锯齿的终极方案(LabelMap线性插值避坑指南)

做PCAT分析时血管不连贯?详解从Cast Scalar Volume到各向同性重采样的全流程

2025-12-11 20:31:27 633

原创 【踩坑记录】3D Slicer处理大层厚CT:为什么闭运算(Closing)核参数开到20mm,还是连不上断层?

最近在进行冠状动脉周围脂肪组织(PCAT)的分析实验。实验流程需要先提取冠状动脉的 Mask,然后向外膨胀 3mm 取交集。但是在处理一批层厚为 3.0mm的老旧 CT 数据时,遇到了一个棘手的问题:由于 Z 轴分辨率太低,分割出的血管在 3D 视图中呈现出严重的“阶梯状”断裂(Step-ladder artifact)。为了修复这些断层,我尝试了Smoothing 模块中的 Morphological Closing(形态学闭运算),结果发生了一件非常反直觉的事情。做医学图像处理,永远先看。

2025-12-10 21:02:46 652

原创 3D Slicer 与 pyradiomics 相关操作汇总文档

1. conda 虚拟环境核心操作(2)激活 / 退出环境bash(3)删除环境bash(4)环境包管理bash2. Jupyter Notebook Kernel 配置(1)注册 Kernel(让 Jupyter 识别 conda 环境)bash(2)验证与切换 Kernel 启动 Jupyter: 新建 Notebook 时选择 “Python (slicer2)”;已有 Notebook 通过「Kernel → Change Kernel」切换

2025-11-17 19:32:20 691

原创 LeNet网络

LeNet 通过 **“卷积→池化→卷积→池化→全连接→输出”** 的流程,逐步从原始像素中提取 “低层次→高层次” 的特征,既保证了特征的丰富性,又通过池化减少了计算量和过拟合风险,是卷积神经网络在计算机视觉领域的里程碑模型。特征的丰富性源于(16 个通道对应 16 种不同特征)经典数据集。

2025-10-16 18:38:45 159

原创 池化层(最大池化,平均池化,代码实现,Q&A)

与点积不同。

2025-10-16 17:04:51 182

原创 卷积示例,填充,步幅,多通道

反向传播则沿着 “损失→Y_hat→卷积核权重” 的路径,反向推导每个权重对损失的 “贡献度”(即梯度)—— 这个过程本质是用。但这种等变性是 “不变性” 的基础 —— 通过后续的池化操作(如最大池化,进一步压缩位置信息),最终能实现对平移的 “不变性”。”,因此沿着梯度的反方向调整权重(即 权重 = 权重 - 学习率×梯度),就能逐步减小损失,最终找到使损失最小的 “最优卷积核权重”。填充通过扩展输入的边界(用 0、镜像、复制边缘等方式),让边缘像素也能被卷积核充分覆盖,从而保留边缘的特征信息。

2025-10-16 13:38:35 309

原创 卷积(操作子,卷积核:二维)

神经网络可以学一些核,进而达到图片实现想要的效果。X*W的*是上方定义的二维交叉操作子。输入输出平移会变,核平移不会变;单层就有14GB的内存。

2025-10-16 13:29:11 152

原创 感知机:单层,多层(二分类,多分类)

理解:多维数据输入,数据结果为类别则相较输入的维度数量较少,一般来说需要慢慢压缩维度,既使用多隐藏层;类似于右边网络变(大,小,小,不变)。x,y代表样本的两个维度,中间层记录样本分类结果,输出层也为样本分类结果;类似于两个函数相加得到的结果。1.P为间隔,r代表数据的大小,r数据多则收敛变慢。输入维度,隐层一个节点代表一个函数,输出为类别;所有输入拉到0-1范围,使得y相加得到1(概率)对 “理想分类参数w,b进行。李沐深度学习35号视频Q&A。回到xor问题,如何解决?不用指数运算(快,省)

2025-10-12 20:50:30 193

原创 cart算法(classification and regression tree)

类似于二进制:用01代表是非,数字转化为逻辑结构。

2025-10-06 13:21:27 315

原创 预剪枝(目的,方法)

拟合能力泛化能力可通过训练误差测试误差度量纠正:欠拟合是训练测试误差都高;预剪枝判断提升泛化能力的评估依据是什么,怎么做;依据就是节点分裂标准为什么通过预剪枝可以提升模型泛化能力避免过拟合;

2025-10-01 15:50:34 317

原创 后剪枝(主要讲解:代价—复杂度剪枝ccp)

可能会欠拟合自底向上判断节点分裂前后对应预测集的误判个数,做出是否剪枝的判断。

2025-10-01 15:47:50 401

原创 cart_回归树生成问题补充

— 它们划分出的子区域完全相同,误差也完全相同。因此,只需遍历这些中点,就能找到最优切分点,既保证了最优性,又降低了计算复杂度。通过遍历特征和阈值,选择使子节点误差总和最小的划分方式,本质是利用标签信息(有监督)优化划分。因为输出结果作为一种监督信息,为输入特征空间的划分提供了标签误差最小化的依据。这里的Rm为小集合上所有的样本,Cm为该集合中的标签平均值。当均值作为预测值时,求得的误差最小,对应的子集划分。为什么选择中点划分阈值。划分特征空间公式讲解。这里的阈值怎么选择?

2025-10-01 12:00:00 345

原创 特征匹配(暴力匹配,LFLANN,图像查找)

normType参数:norm_1(绝对值相加).norm_2(欧氏距离)用于sift,surf的特征子计算,Hamming(二进制位数对比)用于orb。结合上面特征匹配代码,将上方代码的drawMatchesKnn放在下面代码的下面;crossChec:交叉检查,两幅图的特征描述子集互相验证,默认值为false;reshape参数:(无数行,每行一个元素,一个元素中有两个子元素);findhomography的返回值为单应性矩阵和掩码值;作用:通过单应性矩阵实现图1,图2和原图的转换;

2025-09-28 18:54:06 358

原创 特征检测(Harris,Shi-Tomasi,SIFT,SURF,OBR)

文章摘要:本文介绍了三种角点检测算法。Harris角点检测通过响应图确定角点位置,利用布尔掩码标记角点;Shi-Tomasi改进了Harris算法,通过qualityLevel筛选候选角点。SIFT特征检测解决了尺度变化问题,但存在速度慢和版权限制。SURF在速度上优于SIFT,而ORB算法通过FAST关键点检测和BRIEF描述子进一步提升了运算效率,虽然准确率略有下降,但综合性能更优。文中还详细说明了各算法的实现细节和参数设置方法。

2025-09-28 12:23:00 771

原创 实战:车辆识别

先 “高斯模糊去噪”,再 “背景减除”,是因为:噪声会干扰背景建模的准确性(比如让背景看起来 “闪烁”),而高斯模糊能提前抑制噪声,让背景减除算法更稳定地学习背景,从而更准确地提取前景。临时存储当前帧检测到的车辆中心,通过 “距离判断”(欧氏距离 < 20 像素)避免同一帧内重复添加。:合并 “历史未过线车辆” 和 “当前帧新车辆” 后统一判断,避免同一车辆在连续帧中被多次计数。一、会导致 “漏算” 的原因:遍历中删除元素导致迭代器错乱。二、会导致 “重复计算” 的原因:同一车辆被多次添加和检查。

2025-09-26 14:35:49 1212

原创 图像轮廓(查找轮廓,绘制轮廓,轮廓面积与周长,多边形逼近与凸包,外接矩形)

对于轮廓的查找可以是彩色图像,灰度图像需要经过二值化处理,因为灰度图像的颜色强度不同。功能作用:减少存储数据量,将轮廓表示出来即可,可调整精度(存储坐标点)越小:逼近的多边形越接近原始轮廓(顶点数越多,形状越精细)。越大:逼近越 “粗糙”(顶点数越少,形状越简化)。多边形逼近更接近实际物体;凸包将物体轮廓表示出来。需对图像进行深拷贝,保存原始图像。approximatemode参数。0号轮廓面积为该图的最外层轮廓面积。最大外界矩阵返回值不包含倾斜角度。external检测最外层轮廓。:「逼近精度」的阈值。

2025-09-24 21:57:16 267

原创 形态学(二值化,阈值,腐蚀,膨胀,开运运算,闭运算,形态学梯度,顶帽,黑帽)

图像全局二值化注意:窗口先展示imshow()再调整大小resize只有binar和binary——inverted是二进制化的,常用使用自适应阈值api可解决上面的问题卷积的区域如果不是全白,则中心位置将变成黑色,所以会将黑框中的白色区域变小,达到腐蚀的效果。

2025-09-23 20:29:40 693

原创 图像滤波(卷积,方盒,均值,高斯,中值,双边,高通,边缘检测)

而除以 25 后,结果就变成了「局部区域的像素平均值」(总和 ÷ 数量),这个值的范围仍然是 0~255(和原图像一致),保证了图像亮度基本不变,同时实现了「模糊效果」(因为每个像素被周围的平均值替代,弱化了局部差异)。因为你的卷积核是 "平均核",每个输出像素值其实是原图像中对应 5×5 区域内所有像素的平均值。卷积操作中,卷积核会与图像上的每个局部区域(这里是 5×5 的像素块)进行「元素相乘再求和」的计算。25 是 5×5 卷积核的「元素总个数」(5×5=25),除以 25 的目的是。

2025-09-21 15:17:33 791

原创 opencv图像变换(缩放,翻转,旋转,平移,仿射变换,透视变换)

dst是用c++写时要传入的参数,python不用dsize与fx,fy冲突:只设置一个就可以,都写上默认dsize400:400缩放比例不好,修改一下按照原图比例缩放注意:shape按照高宽描述;dsize按宽高描述shape;dsize;按照3:1缩放此时dszie为none;

2025-09-19 20:36:54 1429

原创 opencv加减乘除,位运算

图像叠加(加法运算,增加曝光)(cv.add)叠加图像的尺寸需要相等cv.add图象减法(还原颜色,减少曝光)subtract(A,B)需注意A与B的位置,A被减数,B减数图象乘除(加的更快,减的更快)同上图象溶合区别于加减乘除,有权重的加入静态权重:gamma所有图像都加100图像位运算按位取反同时为真才为真。

2025-09-19 14:46:51 427

原创 opencv图形绘制

callback函数调用是通过鼠标按键触发,函数中按下和松开是两个事件,所以会调用两次callback函数;循环的执行步骤没有直接关联(循环不等待 callback,callback 也不依赖循环的某一步)。代码中的while循环与定义的callbakc函数无直接逻辑步骤关系;从90°作为角度参数,起始0°是在角度参数为90度基础上再加上0°。:它是由 OpenCV 的 “事件机制” 被动调用的,线形状参数(-1,4,8,16)多边形点集合必须是int32位。案例:鼠标绘制图形代码实现。

2025-09-17 21:40:19 186

原创 结构体Mat参数,通道划分合并

其中type的CV_8UC3:每一个像素数据大小占2进制字符8位,U为无符号整型数据类型,C3为chanel数量3个.Mat是一个矩阵,二维Mat矩阵是灰度图象,三维Mat矩阵是真彩图像。浅拷贝:不同指针对于同一数据的操作。Mat头部文件基本属性介绍。深拷贝:将数据也拷贝一份。访问Mat(图像)属性。python中api。

2025-09-16 11:47:48 176

原创 numpy在opencv中的基本操作

ones,full,identity(单位矩阵),eye(可非正方形单位矩阵)在opencv中解释为8行8列三层的图象;输出三层(三个通道)中每一层像素坐标位置的元素值。原因:把自己的 Python 文件命名为了。等 NumPy 的功能,所以就会报 “没有。,而不是真正的 NumPy 库。注意代码ROI编写先后顺序,会有覆盖问题。在np中输出为8个8行三列的矩阵元素;报错:出师未捷身先死,怎么死,笨死。多通道检索【y,x,chanel】、代码解释:限定行限定列,所有行所有列。y在前x在后,检索从0开始喔~

2025-09-16 10:49:08 148

原创 RGB与BRG:opencv色彩空间

它的核心特点是将 “亮度” 和 “色度” 分离,更符合人眼对视觉信息的感知规律,能在节省带宽的同时保证画质。:每 10 毫秒就会释放一次阻塞,让循环能持续运行,实时读取轨迹条位置、转换颜色空间、刷新图像,因此拖动轨迹条时,图像会立即变化。时,才会继续执行循环,因此拖动轨迹条时,循环 “卡住”,无法实时获取轨迹条的新位置并更新图像。YUV 4:2:0色度抽样比例解释:4代表亮度Y,2是U时V是0,2是V时U是0。R与B的交换使得,点亮顺序不同,造成色彩差异。HSV:色相,饱和度,明亮度。

2025-09-13 14:09:06 213

原创 实战:使用TrackBar控件

导致。

2025-09-12 19:41:09 394

原创 opencv鼠标控制;TrackBar控件API基本介绍

左列1代表鼠标左键点击窗口,左2,3列代表以窗口左上角为0,0起始坐标的鼠标移动坐标位置记录;右2代表组合键操作对应的编号;右1代表窗口中执行命令后,在终端中输出的数据。结果:输出鼠标在展示窗口中的一些操作结果。

2025-09-12 17:30:14 172

原创 opencv视频录制

write至少包含数据传输和压缩编码两步骤release释放缓冲区中的剩余数据,关闭文件。

2025-09-12 14:38:46 1276

原创 opencv视频采集 python编写

哦吼吼。。。结果显示:真是棒,真是棒昂,但只显示一帧不会持续更新,需修改waitKey默认参数,设置为10毫秒一帧,即可在窗口中连续加载成为视频。

2025-09-09 19:22:01 378

原创 openCV图像保存

加入while循环使得只有按q时才会退出窗口,其他情况不会退出;

2025-09-09 14:30:05 194

原创 openCV2窗口创建原理,代码实现

exit()与cv2.destoryALLWindows()冲突。未进入if,需修改代码。

2025-09-09 11:03:52 194

原创 vscode注释快捷键;opencv的API参数功能说明解读

vscode快捷键opencv基础是。

2025-09-08 18:17:47 197

原创 基础知识学习VS Code,Git

VS Code 内置了 Git 支持(不需要额外装 “核心插件”)—— 只要电脑上装了 Git 程序,VS Code 能自动识别项目中的 .git 文件夹,提供:​。因为 .vscode 文件夹是项目的一部分(用来存团队统一的配置),提交到 Git 仓库后,其他人拉取项目时,会同步到本地,VS Code 就能读取其中的配置。GitHub 是 基于 Git 的代码托管平台(微软旗下),不仅能存 “远程 Git 仓库”,还提供一系列协作功能:​。3.1 什么是 Git 仓库?3.3 “拉取” 的是什么?

2025-09-08 16:04:21 419

空空如也

空空如也

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

TA关注的人

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