
图像处理
文章平均质量分 56
npupengsir
新手程序员
展开
-
医学图像中的normalization
3D的医学图像进行normalization时通常只使用非0值,即先求出非0区域的均值和方差:class Normalize_1: def __init__(self, normalization="mean"): self.normalization = normalization def __call__(self, img, mask=None): if self.normalization == "mean": if img原创 2021-04-11 03:19:56 · 719 阅读 · 0 评论 -
DenseVoxelNet学习
原文地址: DenseVoxelNet1. 方法的advantage通过一种紧密连接的机制最大限度地保留了各层之间的信息流动,从而简化了网络训练。通过鼓励特征重用来避免学习冗余的特征映射,因此需要更少的参数来实现高性能,这对于训练数据有限的医疗应用是至关重要的。增加了辅助的边路径来加强梯度的传播,使学习过程更加稳定。2. 网络结构其他的方法要么非常慢,要么没有用到3D信息。用到了3D信息的网络,例如: 3DFractalNet,3DUnet,VoxelResNet3D FractalNet,原创 2021-01-19 09:54:11 · 408 阅读 · 1 评论 -
图像分割各种评测标准
1. 计算DiceDice其实就是F1-score,即预测predicate和实际gt区域的overlap的面积(area)(或体积(volume))与二者union区域的面积(area)(或体积(volume))的比值的2倍。Dice一般是没有单位的。def dice(seg, gt): if seg.sum() + gt.sum() == 0: return 0 dice = 2 *(seg * gt).sum() / (seg.sum() + gt.sum())2. 计算Assd原创 2020-12-31 14:44:35 · 7483 阅读 · 1 评论 -
vtk学习笔记
vtk是进行3维图像处理的开源库。核心源代码: vtk源代码: 包含源代码和相关实例程序。相关数据: vtkdata:包含VTK自带的例子或测试程序运行时需要用到的数据。文档: vtkDocHtml: 由Doxygen工具根据各个类的头文件自动生成的。可执行程序: vtkexe: 安装后可以运行后缀为.tcl的tcl脚本程序。vtk和很多例子都是以tck脚本写成的。1. 编译并安装vtk在vtk官网上下载相应的source, vtkdata, vtklargedata, Documentatio原创 2020-12-28 15:48:01 · 1484 阅读 · 0 评论 -
VTP转OFF
将.vtp格式的文件转为.off格式:1. CMakeLists.txtcmake_minimum_required(VERSION 3.17)PROJECT(VtpToOFF)find_package(VTK REQUIRED)include(${VTK_USE_FILE})add_executable(VtpToOFF MACOSX_BUNDLE VtpToOFF vtkOFFWriter.cxx)if(VTK_LIBRARIES) target_link_libraries(原创 2020-12-27 11:35:10 · 222 阅读 · 0 评论 -
vcpkg和cgal安装和使用
1. 下载并安装visual studio 2019windows下最方便的安装方式就是用visual studio来安装, 并勾选使用C++的桌面开发和右侧的MSVC v142...和Windows 10 SDK。注意vcpkg会使用到$vswhereExe = "$programFiles\Microsoft Visual Studio\Installer\vswhere.exe",因此需要visual studio 2015及其以上版本才行。否则运行bootstrap-vcpkg.bat会报错。2原创 2020-12-24 10:09:03 · 4097 阅读 · 5 评论 -
操作vtkPolyData和meshdata
1. 新建一个vtkPolyDataimport vtkpoints = vtk.vtkPoints()points.InsertNextPoint(0, 0, 0)points.InsertNextPoint(1, 0, 0)points.InsertNextPoint(1, 1, 0)points.InsertNextPoint(0, 1, 0)points.InsertNextPoint(2, 0, 0)polygon = vtk.vtkPolygon() # 多边形polyg原创 2020-12-24 10:06:06 · 2548 阅读 · 2 评论 -
opencv-python教程
1. 加bound boxgray-scaleimg = cv2.rectangle(img, (point_1_x, point_1_y), (point_2_x, point_2_y), color=img.max(), thickness=1)plt.imshow(img, cmap="gray")如果想在gray-scale上加彩色bounding box:img = np.dstack([img_arr, img_arr, img_arr])*255 # img_arr为[0,原创 2020-09-29 10:09:42 · 135 阅读 · 0 评论 -
图像的腐蚀(erosion)和膨胀(dilation)
其实就是定义一个连通规则(structure),用该连通区域在图像上stride, 用连通区域内的最小或者最大值代替原来的值。(边界上只覆盖部分值)1. 腐蚀(erosion)构造如下的连通区域:构造图像:img = np.array([ [125, 190, 11, 190], [141, 234, 21, 67], [165, 234, 31, 189], [112, 12, 41, 56] ], dtype='uint8')kernel = np原创 2020-09-22 09:52:36 · 8490 阅读 · 0 评论 -
imgaug学习笔记
imgaug是一个封装好的用来进行图像augmentation的python库,支持关键点(keypoint)和bounding box一起变换。项目主页: imgaug doc1. 安装和卸载# 通过github安装sudo pip install git+https://github.com/aleju/imgaug# 通过pypi安装sudo pip install ...原创 2018-04-29 14:02:10 · 50970 阅读 · 12 评论 -
Selective Search
论文原文地址: Selective Search for Object Recoginition文章主要介绍了选择性搜索(Selective Search)的方法。物体识别(Object Recognition),在图像中找到确定一个物体,并找出其为具体位置,经过长时间的发展已经有了不少成就。之前的做法主要是基于穷举搜索(Exhaustive Search),选择一个窗口(window)扫描整...原创 2018-04-17 20:53:31 · 415 阅读 · 0 评论 -
GBIS
论文原文: Efficient Graph-Based Image Segmentation最近看RCNN,里面用到了Selective Search来产生region proposal。Selective Search用到的方法就是本文中提到的产生Region的方法。即:基于图的贪心聚类算法。该算法实现简单,速度较快。1. 图像分割图像分割的主要目的就是将图像(image)分割成若干...原创 2018-04-17 20:50:45 · 1039 阅读 · 0 评论