ITK 形态学处理(Morph process)
来源:互联网 发布:在淘宝上如何做代理 编辑:程序博客网 时间:2024/05/22 00:44
定义:数字图像处理中的形态学处理是指将数字形态学作为工具从图像中提取对于表达和描绘区域形状有用处的图像分量,比如边界、骨架以及凸壳,还包括用于预处理或后处理的形态学过滤、细化和修剪等。图像形态学处理中我们感兴趣的主要是二值图像。
具体定义参考博客http://blog.csdn.net/poem_qianmo/article/details/23710721
在 ITK中使用NeighborhoodIterators和itk::NeighborhoodOperators来实现数学形态学滤波器。研发平台中包含有两种图像形态学算法:对二值图像操作的滤波器和对灰度尺图像操作的滤波器。
itk::BinaryErodeImageFilter 腐蚀操作
itk::BinaryDilateImageFilter 膨胀操作
ITK中的数学形态学操作通过对每个输入像素的邻域应用一个操作来实现。规则和邻域的结合被称为构造成员。
下面包含了构造一个简单地使用数学形态学滤波器需要的头文件:
#include "itkBinaryErodeImageFilter.h"
#include "itkBinaryDilateImageFilter.h"
#include "itkBinaryBallStructuringElement.h"
接下来的代码定义了输入、输出像素类型以及和它们相关的图像类型:
const unsigned int Dimension = 2;
typedef unsigned char InputPixelType;
typedef unsigned char OutputPixelType;
typedef itk::Image< InputPixelType, Dimension > InputImageType;
typedef itk::Image< OutputPixelType, Dimension > OutputImageType;
构造成员是作为一个NeighborhoodOperator来实现的。事实上,默认的构造成员是
itk::BinaryBallStructuringElement 类。这个类是使用像素类型和输入图像维来进行实例化的:
typedef itk::BinaryBallStructuringElement<
InputPixelType,
Dimension > StructuringElementType;
然后使用构造成员类型和输入、输出图像类型一起来对滤波器类型进行实例化:
typedef itk::BinaryErodeImageFilter<
InputImageType,
OutputImageType,
StructuringElementType > ErodeFilterType;
typedef itk::BinaryDilateImageFilter<
InputImageType,
OutputImageType,
StructuringElementType > DilateFilterType;
现在通过调用 New( )方式来创建这个滤波器并将结果指向一个itk::SmartPointer:
ErodeFilterType::Pointer binaryErode = ErodeFilterType::New( );
DilateFilterType::Pointer binaryDilate = DilateFilterType::New( );
构造成员不是一个引用记数类。因此它是作为一个C++堆栈而不是使用New( )和SmartPointers来创建的。使用SetRadius( )方式来定义和构造成员相关的邻域半径并调用CreateStructuringElement( )方式以便于初始化操作符。如下面所阐述的那样,使用SetKernel( )方式将构造成员的结果传递给数学形态学滤波器。
StructuringElementType structuringElement;
structuringElement.SetRadius( 1 ); // 3x3 structuring element
structuringElement.CreateStructuringElement( );
130
binaryErode->SetKernel( structuringElement );
binaryDilate->SetKernel( structuringElement );
- ITK 形态学处理(Morph process)
- (8)MATLAB 形态学处理
- 图像形态学处理(1)
- 图像形态学处理(2)
- 图像形态学处理(3)
- 形态学处理
- 形态学处理
- 形态学处理
- 形态学处理
- 形态学处理
- OpenCV-Python教程(4、形态学处理)
- OpenCV入门(八)--形态学图像处理
- 【OpenCV】图像处理(二)图像形态学
- OpenCV-Python教程(4、形态学处理)
- opencv学习(8)形态学图像处理
- OpenCV-Python教程(4、形态学处理)
- 图像形态学处理(2.腐蚀)
- 图像形态学处理(3.开闭运算)
- Matlab数字图像处理基础【11】
- docker-compose是干什么的?
- WEB阶段中文乱码解决方式总结:
- Android中Spinner控件的使用
- Java NIO初步了解
- ITK 形态学处理(Morph process)
- iOS每日一记之———————————————为Cell设置部分圆角 类似于ipad的设置界面效果
- 安装sql sever management studio出现29506错误
- STM32 IIC的学习
- WPF中动态创建TreeView。
- 设计模式一 模版模式
- Netty 实现 WebSocket 聊天功能
- arduino UNO、arduino 2560和can总线-基于mcp2515的一些基础通讯
- Laravel中缓存的使用