自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

沈春旭的博客

优秀是一种习惯

  • 博客(46)
  • 资源 (9)
  • 问答 (1)
  • 收藏
  • 关注

原创 VTK修炼之道42:频域处理_高通滤波(理想+巴特沃兹)

1.理想高通滤波器高通滤波与低通滤波正好相反,是频域图像的高频部分通过而抑制低频部分。在图像中图像的边缘对应高频分量,因此高通滤波的效果是图像锐化。同样最简单的高通滤波器是理想高通滤波器。通过设置一个频率阈值,将高于该阈值的频率部分通过,而低于阈值的低频部分设置为0。VTK中理想高通滤波的实例如下:#include VTK_MODULE_INIT(vtkRenderingOp

2017-01-29 14:36:45 2437

原创 VTK修炼之道41:频域处理_低通滤波(理想+巴特沃兹)

1.低通滤波器低通滤波是将频域图像中的高频部分滤除而通过低频部分。图像的边缘和噪声对应于频域图像中的高频部分,而低通滤波的作用即是减弱这部分的能量,从而达到图像平滑去噪的目的。2.理想低通滤波器最简单的低通滤波器是理想低通滤波器,基本思想是给定一个频率阈值,将高于该阈值的所有部分设置为0,而低于该频率的部分保持不变。理想是指该滤波器不能用电子元器件来实现,但

2017-01-29 12:23:39 2487

原创 VTK修炼之道40:频域处理_快速傅里叶变换及其反变换1

1.图像频域处理的意义在图像处理和分析中,经常会将图像从图像空间转换到其他空间中,并利用这些空间的特点进行对转换后图像进行分析处理,然后再将处理后的图像转换到图像空间中,这称之为图像变换。在一些图像处理和分析中通过空间变换往往会取得更有效的结果。图像频域处理是指将图像从图像空间转换到频域空间进行处理的过程。最常用的频域转换是傅里叶变换。傅里叶变换的计算量较大,人们为了提高速度,

2017-01-29 11:44:54 1488

原创 VTK修炼之道39:图像平滑_各向异性滤波

1.各向异性扩散滤波高斯平滑方法在平滑噪声的同时,模糊了图像的重要边缘图像。各向异性滤波是一种基于偏微分方程的滤波技术,建立于热量的各向异性扩散理论。各向异性滤波在图像的平坦区域选择大尺度平滑,而边缘区域则选择小尺度的平滑,在抑制噪声的同时保持了图像的边缘信息。vtkImageAnisotropicDiffusion2D(vtkImageAnisotropicDiffusi

2017-01-29 00:05:51 2344

原创 VTK修炼之道38:图像平滑_中值滤波器

1.中值滤波vtkImageHybridMedian2D实现了对二维图像的中值滤波。其实现原理是,采用一个5x5的模板,逐次将模板中心对应于图像的每个像素上,将模板图像覆盖的像素的中值作为当前像素的输出值。#include VTK_MODULE_INIT(vtkRenderingOpenGL);#include #include #include #include #

2017-01-28 23:43:12 1983 1

原创 VTK修炼之道37:图像平滑_高斯滤波器

1.高斯滤波高斯平滑的原理类似于均值滤波。均值滤波模板的系数都是一样的,而高斯平滑则是需要根据像素与模板中心的距离来定义权重。权重的计算方法是采用高斯分布,离中心越远,权重越小。下面是一个利用Gauss滤波进行图像平滑的实例:#include VTK_MODULE_INIT(vtkRenderingOpenGL);#include #include #include

2017-01-28 23:31:38 3074

原创 VTK修炼之道36:图像平滑_均值滤波器

1.图像平滑图像平滑常用于图像的预处理中,如计算梯度时先对图像进行平滑处理,可以减少噪声对梯度的影响。图像平滑一般是通过模板卷积运算实现。模板可以看做是一个大小为nxn的小图像,例如3x3,5x5等等,模板的每个像素都对应一个系数值。模板卷积运算的过程是首先将模板中心依次与图像每个像素重合,通过模板各个系数与图像对应像素相乘来计算模板对应像素的加权平均值,最后将运算结果赋给图像中模板中

2017-01-28 23:14:34 2033

原创 VTK修炼之道35:边缘检测_Laplace算子

1.拉普拉斯算子拉普拉斯算子是一个二阶边缘算子,即梯度的散度。拉普拉斯算子的实现也是通过模板实现。常用的拉普拉斯模板定义如下:拉普拉斯算子计算图像的二阶导数,对于图像噪声比较敏感。拉普拉斯算子的结果为标量,表示边缘的宽度。但是它常产生双像素宽边缘,而且不能提供方向信息,因此较少直接用于边缘检测。在VTK中由vtkImageLaplacian实现。#include

2017-01-28 22:45:20 2486 1

原创 VTK修炼之道34:边缘检测_Canny算子

1.Canny算子Canny算子是John Canny于20世纪80年代提出的一种多级边缘检测算法。John Canny研究了最优边缘的特性,即检测到的边缘要尽可能跟实际的边缘接近并尽可能的多,同时,要尽量降低噪声对边缘检测的干扰。其计算步骤如下1)对源图像进行高斯平滑以消除图像中噪声2)采用差分法近似计算图像每一个像素的梯度,并计算梯度的模值和方向3)对梯度进行"非极大抑制"

2017-01-28 22:30:14 3146 1

原创 VTK修炼之道33:边缘检测_Sobel算子

1.Sobel算子用于提取图像边缘Sobel算子也是一种常用的梯度算子。Sobel算子计算稍微复杂,它采用3x3的模板。计算时模板在图像上移动,并在每个位置上计算对应中心像素的梯度值。VTK中vtkSobel2D计算图像的sobel算子,使用代码如下:#include VTK_MODULE_INIT(vtkRenderingOpenGL);#include #i

2017-01-26 23:14:50 2532

原创 VTK修炼之道32:边缘检测_梯度算子

1.梯度算子提取图像边缘图像中不连续的灰度值会产生边缘,图像的边缘检测是基于边界的图像分割方法,如分水岭算法,通常是分割原图的梯度图像,梯度实际上也是反应的图像边缘信息。图像边缘一般常用图像一阶导数和二阶导数来检测。梯度算子对应于图像一阶导数。图像一阶导数计算一般是通过差分运算来近似的。VTK中可以使用vtkImageGradient计算图像梯度。注意图像梯度是一个向量,具有方

2017-01-26 22:16:27 3181

原创 VTK修炼之道31:图像二值化_阈值法

1.阈值法实现图像二值化操作二值图像和label图像是图像分割中经常用到的两种图像。二值图像的每个像素只有两种可能的取值,例如0或者255。通常0代表图像的背景,而255代码图像前景。图像二值化是最简单的图像分割模型。设置一个灰度阈值,将图像中阈值以下的像素值设置为背景,阈值以上的像素值设置为前景,即可得当一副二值图像。在VTK中可以通过vtkImageThreshold类实现

2017-01-26 19:55:20 4238

原创 VTK修炼之道30:图像重采样_降采样和升采样技术

1.VTK中的图像重采样实现图像重采样是指对采样后形成的由离散数据组成的数字图像按所需的像元位置或像元问距重新采样,以构成几何变换后的新图像。重采样过程本质上是图像恢复过程,它用输入的离散数字图像重建代表原始图像二维连续函数,再按新的像元间距和像元位置进行采样。其数学过程是根据重建的连续函数(曲面),用周围若干像元点的值估计或内插出新采样点的值。图像重采样在图像处理中应用非常广泛,如SIF

2017-01-26 18:50:19 5632

原创 VTK修炼之道29:图像统计_彩色直方图计算

1.彩色图像直方图彩色图像由于内部有三个通道,不能直接计算直方图,需要提取RGB三个通道数据,分别计算直方图。每个通道计算直方图的方法与灰度图像直方图计算方法一致。实例代码如下:#include VTK_MODULE_INIT(vtkRenderingOpenGL);#include #include #include #include #include #in

2017-01-25 11:02:36 2527 2

原创 VTK修炼之道28:图像统计_灰度直方图计算

1.灰度图像直方图直方图统计是图像处理中的一个非常重要的操作。VTK中实现直方图统计功能的filter是vtkImageAccumulate。其将每个组分的数值范围划分为离散的间隔,然后统计每个灰度间隔上的像素数目。vtkImageAccumulate输入和输出都是vtkImageData类型,因此直方图也可以看做是一幅图像;对于输入图像的像素数据类型可以是任意的,但是最大支持3个组分

2017-01-25 09:46:26 6505 8

原创 VTK修炼之道27:图像基本操作_三维图像切片交互提取(回调函数、观察者-命令模式)

1.鼠标滑动提取三维图像切片学习三维图像切面的提取后,我们可以实现一个稍微复杂的程序——通过滑动鼠标来切换三维图像切片,这也是医学图像处理软件中一个很基本的功能。实现该功能难点是怎样在VTK中控制鼠标来实时提取图像切片。我们采用观察者/命令(Observer/Command)模式机制来实现。VTK中鼠标消息是在交互类型对象(interactorstyle)中响应,因此通过为交互类型

2017-01-24 23:29:35 7619 12

原创 VTK修炼之道26:图像基本操作_三维图像切片提取

1.三维图像切片提取切片是指三维图像中的一个切面对应的图像。切面可以是过图像内部一点且平行于XY、YZ、XZ平面的平面,也可以是任意的过三维图像内部一点任意方向的平面。通过提取切片可以方便的浏览和分析图像内部组织结构,是医学图像浏览软件中的一个重要的功能。在VTK中vtkImageReslice类实现图像切片提取功能。下面是切片提取的代码:#include VTK_MODUL

2017-01-24 14:22:14 17949 24

原创 VTK修炼之道25:图像基本操作_图像子块提取(特征区域提取)

1.提取感兴趣区域感兴趣区域(Volum of Interest,VOI)是指图像内部的一个子区域。在VTK中vtkExtractVOI类实现由用户指定的区域范围提取图像的子图像。该Filter的输入和输出都是一个vtkImageData,因此其结果可以直接作为图像保存。其示例代码如下所示:#include VTK_MODULE_INIT(vtkRenderingOpenGL

2017-01-24 09:58:22 3172

原创 VTK修炼之道24:图像基本操作_单颜色通道图像合成彩色

1.三张灰度图像合成彩色图我们可以提取彩色的图像的各个颜色分量,那么同样也可以将灰度图像合并成为一个彩色图像。VTK中提供vtkImageAppendComponents类来合成彩色图像,其输入需要提供三个灰度图像。下面实例:#include VTK_MODULE_INIT(vtkRenderingOpenGL);#include #include #includ

2017-01-23 23:50:44 2516 1

原创 VTK修炼之道23:图像基本操作_灰度图像映射成伪彩色图像(查表法)

1.查表法伪彩图映射图像彩色映射的原理是首先生成一个颜色查找表,然后根据图像的一个标量值向颜色查找表中查找对应的颜色,并用新颜色值替代原来的像素值。VTK中vtkImageMapToColors负责图像彩色映射,vtkLookUpTable负责生成颜色查找表。下面代码说明了怎样进行彩色映射:#include VTK_MODULE_INIT(vtkRenderingOpenGL

2017-01-23 22:43:35 3808

原创 VTK修炼之道22:图像基本操作_彩色图像成分提取

1.彩色图像RGB成分提取VTK中利用vtkImageExtractComponents可以方便的提取出彩色图像的各个颜色分量,该类的使用比较简单,只需要设置要提取的分量序号即可。下面代码说明了怎样提取彩色图像的某个颜色分量。#include VTK_MODULE_INIT(vtkRenderingOpenGL);#include #include #include #

2017-01-23 21:39:15 1737

原创 VTK修炼之道21:图像基本操作_彩色图像生成灰度图像

1.灰度图像映射vtkImageLuminance负责将一个RGB彩色图像转换为一个单组分的灰度图像。映射公式如下:luminance = 0.3*R + 0.59*G + 0.11*B该公式中,R为输入图像的第一分量(红色),G为第二分量(绿色),B为第三分量(蓝色)。这个计算结果计算一个RGB颜色的亮度。该类的使用也比较简单,用户无须设置参数,代码如下:#inclu

2017-01-23 20:34:44 2707

原创 VTK修炼之道20:图像基本操作_图像类型转换

1.vtkImageCast图像数据类型转换在数字图像处理中会被频繁地用到。一些常用到的图像算子(例如梯度算子)在计算时出于精度的考虑,会将结果存储为float或者double类型。但是在图像显示时,一般需要图像为unsigned char类型。VTK中最常用到的是VTKImageCast类型。其使用方法如下:vtkSmartPointer imgCast =vtkSmart

2017-01-21 23:31:35 4674 1

原创 VTK修炼之道19:图像基本操作_图像像素值的访问与修改

1.直接访问图像像素(索引法)#include VTK_MODULE_INIT(vtkRenderingOpenGL);#include #include #include #include #include #include #include int main(){ vtkSmartPointer reader = vtkSmartPointer::New();

2017-01-21 21:10:33 4426

原创 VTK修炼之道18:图像基本操作_图像信息的访问与修改(vtkImageChangeInformation)

1.类vtkImageChengeInformation用于图像信息修改vtkImageData中提供了多个Set函数用于设置图像的基本信息。当对一个管线的输出修改图像信息后,如果管线重新Update,那么这些修改都会恢复回原来的值。而vtkChangeImageInformation可以作为管线中的一个filter来修改图像信息。利用这个filter可以修改图像的原点,像素间隔以及范

2017-01-21 18:17:54 3343 1

原创 loadlibrary failed with error 126:找不到指定模块

1.问题描述2.解决办法原因分析:OpenGL在ATI(AMD)显卡上不好使(特别是双显卡机器 ),如果是英伟达显卡,应该没有这个问题. 解决方案:把显卡改为根据 电源模式调节 就可以了,具体步骤:鼠标右键->显示卡属性->电源->可切换显示卡方式->手动或根据电源选择图形处理器(选上)    ,然后就Ok了总之,用一个显卡就好了,怀疑是软件显卡

2017-01-21 14:59:14 45726 2

原创 VTK修炼之道17:图像基本操作_图像信息的访问与修改(vtkImageData)

1.利用vtkImageData实现图像信息的访问与修改vtkImageData中提供了多个函数用于访问或者获取图像的基本信息,这些函数通常使用Set或者Get加上相应的信息名的形式,例如获取图像维数的方法定义为GetDimensions()。2.实验程序及运行结果#include VTK_MODULE_INIT(vtkRenderingOpenGL);#incl

2017-01-21 14:52:45 3436 2

原创 “error LNK2019: 无法解析的外部符号”的几种可能原因

1.前言error LNK2019: 无法解析的外部符号这个错之前见过很多次,能知道最根本的原因在于链接过程中没有搜索到程序用到的库文件,即*.lib。笔记本重装了系统,有32Bit升到64Bit,运行VTK程序时,始终报错如下:1>     正在创建库 E:\Driverprogram\imgport\Debug\imgport.lib 和对象 E:\Driverprog

2017-01-17 23:05:13 156922 15

原创 VTK修炼之道16:图像处理_窗口分割和图像融合(Viewport&vtkImageBlend)

1.前言前面演示的例子都是在一个窗口中显示一个图像。但是在常见的图像处理软件中,经常会遇到在一个窗口中显示多个图像,这就会用到图像融合技术。图像融合利用图像的alpha通道和不透明度来实现。VTK中vtkImageBlend实现图像的融合。vtkImageBlend可以接收多个图像输入,输出为融合图像。输出图像的像素间隔、原点、范围(extent)以及像素组分个数与第一个图像一致。

2017-01-16 15:45:14 4949 1

原创 VTK修炼之道15:图像处理_显示(vtkImageViewer2 & vtkImageActor)

1.vtkImageViewer2用于图像显示实例分析在VTK早期版本中,提供了vtkImageViewer类来显示图像。随着版本的发展,目前vtkImageViewer2代替了vtkImageViewer进行图像显示。vtkImageViewer2中封装了VTK图像显示的管线,包括vtkActor,vtkRender,vtkRenderWindow,vtkInteractorStyp

2017-01-15 23:56:39 16268 5

原创 VTK修炼之道14:图像处理_创建

1.引言:图像数据结构数字图像文件内容由两个部分组成:图像头信息和数据。图像头信息定义了图像的基本信息,主要包括起点位置(Origin),像素间隔(space)和维数(dimension)。通过这三个参数即可以决定图像空间位置和规模。图像可以看做是空间中的一个规则网格,网格中的每个最小单元称之为一个像素(二维)或者体素(三维),这样网格在每个方向上的像素或者体素个数即为图像在该方向的维

2017-01-15 19:53:02 4501

原创 VTK修炼之道13:数据读写_图像数据的读写

1.前言VTK应用程序所需的数据可以通过两种途径获取: 第一种是生成模型 ;第二种是从外部存储介质里导入相关的数据文件,(如vtkBMPReader读取 BMP图像) 。VTK 也可以将程序中处理完成的数据写入单个文件中, 或者将所渲染的场景导出。从可视化管线的角度来看,一般以数据的读取 (或由模型创建数据)开始,而以数据的写盘操作(或 Mapper)结束。前面我们已经接触到了

2017-01-15 12:19:53 6328 1

原创 B样条曲线拟合原理

1.与贝塞尔曲线对比B样条曲线是在Bezier 曲线基础上发展起来的一类曲线,它克服了Bezier 曲线整体控制性所带来的不便,最常用的是二次和三次B样条曲线。2.二次B样条2.1 参数方程已知三个平面离散点P0、P1、P2,由这三点可以定义二次抛物线段,其参数矢量方程形式为:二次B样条曲线参数方程的矩阵形式为:对比着看,

2017-01-13 18:51:43 46223 31

原创 贝塞尔曲线拟合原理

1.什么是贝塞尔曲线?贝塞尔曲线所依据的最原始的数学公式,是早在1912年就广为人知的伯恩斯坦多项式。简单来说,伯恩斯坦多项式可以用来证明,在[ a, b ] 区间上所有的连续函数都可以用多项式来逼近,并且收敛性很强,也就是一致收敛。再简单点,就是一个连续函数,你可以将它写成若干个伯恩斯坦多项式相加的形式,并且,随着 n→∞,这个多项式将一致收敛到原函数,这个就是伯恩斯坦斯的逼近性质。

2017-01-13 18:07:53 25585 1

原创 最小二乘抛物线拟合原理及证明

1.定理及证明2.实例

2017-01-13 16:04:44 7097

原创 最小二乘拟合曲线证明+正则方程

1.定理及证明2.实例3.参考资料JOHNH.MATHEWS), KURTISD.FINK. 数值方法(MATLAB版)[M]. 电子工业出版社, 2005.

2017-01-13 15:43:24 4813

原创 VTK修炼之道12:基本数据结构_如何把几何结构&拓扑结构加入到数据集

1. 无拓扑结构只有几何结构,没有拓扑结构的vtkDataSet#include VTK_MODULE_INIT(vtkRenderingOpenGL); #include #include #include #include int main(){ //创建几何数据,没有拓扑数据 vtkSmartPointer points = vtkSmartPo

2017-01-12 23:40:20 4038 1

原创 VTK修炼之道11:基本数据结构_数据对象&数据集

1.前言前面学习了VTK的一个重要概念——可视化管线,了解了VTK数据的流动过程。好比我们做一道菜,在做每一道菜之前,首先要掌握这道菜的做法,什么时候放盐什么时候放酱油等调料,除了需要弄清楚做每一道菜的流程,还需要了解所做的每一道菜的原料,比如有些原料是要蒸出来才比较好吃,有些则可能会用炖的方法才比较可口,只有掌握做菜的流程以及了解菜的原料的特点,最后做出来的菜才可口美味。如果说VTK

2017-01-12 23:14:01 2901 1

原创 牛顿迭代优化

引用zhiyong_will博主的工作,仅进行小范围修改http://blog.csdn.net/google19890102/article/details/41087931一、牛顿法概述除了梯度下降法,牛顿法也是常用的的一种优化算法。牛顿法的基本思想是利用迭代点处的一阶导数(梯度)和二阶导数(Hessen矩阵)对目标函数进行二次函数近似,然后把二次模型的极小点作为新的迭代点,并

2017-01-12 16:23:13 1450

原创 VTK修炼之道10:可视化管道的连接与执行

1.可视化管道综述vtkProp; vtkAbstractMapper;vtkProperty; vtkCamera; vtkLight; vtkRenderer; vtkRenderWindow;vtkRenderWindowInteractor; vtkTransform; vtkLookupTable ……我们发现,这些类都是与数据显示或者

2017-01-11 22:29:17 4896 3

用于特征图/卷积核/响应图可视化的网络

这个是为博客‘非黑盒矣-卷积神经网络的可视化’匹配的已经训练好的网络。 通过该网络和博文中阐述的代码,从而复现实验。

2018-12-18

Python+OpenCV实现Selective Search算法

The code is a Python tutorial for Selective Search using OpenCV 3.3.

2018-10-29

softmax regression测试代码

代码实现了softmax regression。 包含训练代码,测试代码和训练数据。

2018-10-15

logistic逻辑回归配套资源

logistic逻辑回归的配套资源。 里面包括训练代码、测试代码。其中也包括了训练集、测试集。

2018-10-14

英伟达深度神经网络加速库 与 matconvnet配套使用 (v5.1)

CuDNN是专门针对Deep Learning框架设计的一套GPU计算加速方案,目前支持的DL库包括Caffe,ConvNet, Torch7等。

2018-07-11

21个项目玩转深度学习

《21 个项目玩转深度学习——基于TensorFlow 的实践详解》以实践为导向,深入介绍了深度学习技术和TensorFlow 框架编程内容。 通过本书,读者可以训练自己的图像识别模型、进行目标检测和人脸识别、完成一个风格迁移应用,还可以使用神经网络生成图像和文本,进行时间序列预测、搭建机器翻译引擎,训练机器玩游戏。全书共包含21 个项目,分为深度卷积网络、RNN网络、深度强化学习三部分。读者可以在自己动手实践的过程中找到学习的乐趣,了解算法和编程框架的细节,让学习深度学习算法和TensorFlow 的过程变得轻松和高效。本书代码基于TensorFlow 1.4 及以上版本,并介绍了TensorFlow 中的一些新特性。 本书适合有一定机器学习基础的学生、研究者或从业者阅读,尤其是希望深入研究TensorFlow 和深度学习算法的数据工程师,也适合对人工智能、深度学习感兴趣的在校学生,以及希望进入大数据应用的研究者。

2018-06-15

数学之美完整版

很好的一本书 是清华师兄的大作,将通信领域和语音处理领域应用的数学深入简出的道来

2016-11-10

2-D and 3-D Image registration 图像配准

1.计算机影像学、手术导航领域专业书籍 2.国外具有影响力的图像配准参考书籍 3.图书中包括2D-2D图像配准的方法与策略,并详细地论证了3D-2D医学图像配准的方法。对图像处理、模式识别领域具有重要参考意义。

2016-07-27

串口通讯代码

利用C#开发出的串口通讯代码,可以实现对下位机的控制,软件界面简介

2014-06-09

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

TA关注的人

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