Mathematical Morphology 数学形态学
来源:互联网 发布:csgo淘宝买激活码 编辑:程序博客网 时间:2024/05/21 17:28
首先是 structuring element.
A structuring element can be simply defined as a configuration of
pixels on which an origin is defined (also called an anchor point).
---------------opencv cookbook
定义一个structuring element.
Mat getStructuringElement( int shape, Size ksize, Point anchor=Point(-1,-1) )
其中StructuringElement的形状
– MORPH_RECT - a rectangular structuring element
– MORPH_ELLIPSE - an elliptic structuring element, that is, a filled ellipse inscribed
into the rectangle Rect(0, 0, esize.width, 0.esize.height)
– MORPH_CROSS - a cross-shaped structuring element
– CV_SHAPE_CUSTOM - custom structuring element (OpenCV 1.x API)
当然, 定义StructuringElement可以直接定义Mat, 但不如getStructuringElement方便
而且会造成形态学变换的不稳定, 要将Mat内的元素赋值才可以, 初始化一块Mat后不一定会是什么值
如:
使用了cv::Mat(cv::Size(22,7),CV_8U)作为结构元素,每运行一次都产生不同的结果
而原本的cv::Matelement=cv::getStructuringElement(cv::MORPH_RECT,cv::Size(22,7));一直是这样
究其原因可能是未对Mat像素进行初始化.
形态学最基本的操作就是腐蚀和膨胀, 将他们二者结合
腐蚀用伪代码描述就是
for(all pixels in the element){
sum = A1 + A2 + .... +An; //A0,A1,...An 代表原 结构元素上的像素 , 0 代表中心
if (sum < somevalue)
B0 = 0; //B0代表新图像像素, 0 代表中心
else B0 =1;
}
膨胀
for(all pixels in the element){
sum = A1 + A2 + .... +An;
if (sum > somevalue)
B0 = 1;
else B0 =0;
}
也就是说 , 在一个structuring element内, 除了中央点(anchor point)不计, 求其余像素之和,看是否大于或小于某个值, 若符合条件, 相应的将中央像素置为1 或 0
腐蚀可以去掉pepper噪声, 膨胀可以去掉salt噪声
以这两个操作组合构成了形态学的基本操作
opencv内对应的函数是
void morphologyEx( InputArray src, OutputArray dst, int op, InputArray kernel, Point anchor=Point(-1,-1),
int iterations=1, int borderType=BORDER_CONSTANT,
const Scalar& borderValue=morphologyDefaultBorderValue() )
其中op 代表操作方式
– MORPH_OPEN - an opening operation 先腐蚀后膨胀
– MORPH_CLOSE - a closing operation 先膨胀后腐蚀
– MORPH_GRADIENT - a morphological gradient 分别做腐蚀和膨胀, 然后用 膨胀后的 - 腐蚀后的
– MORPH_TOPHAT - “top hat” 原图像 - 原图像的开运算
– MORPH_BLACKHAT - “black hat” 原图像的闭运算 - 原图像
– MORPH_HITMISS - “hit and miss” http://homepages.inf.ed.ac.uk/rbf/HIPR2/hitmiss.htm
- Mathematical Morphology 数学形态学
- OpenCV学习笔记(3)——图像形态学操作(Mathematical Morphology)
- 【mathematical morphology】Quoit-filter
- 形态学操作 morphology
- Image Morphology(图像形态学)
- Mathematical Morphology —— Path Operator
- 数学形态学
- 数学形态学
- 数学形态学
- 数学形态学
- 数学形态学简介
- 图像数学形态学变换
- 数学形态学运算
- 图像数学形态学处理
- 图像处理----数学形态学
- Numpy Mathematical functions 数学函数
- [Medical Image Process] 3.2 GrayScale Morphology(灰阶图像形态学及基本运算)
- OpenCV_(Corner Detect with Morphology) 基于形态学滤波的角点检测
- C# Winform中实现主窗口打开登录窗口关闭的方法
- 115个Java面试题和答案——终极列表(下)
- 最小生成树prim算法
- 怎么在android app中使用STL库
- onerror
- Mathematical Morphology 数学形态学
- [LintCode] 螺旋矩阵 Spiral Matrix
- 如何获得腾讯FLASH视频链接或下载到本地
- 【POJ1819】Disks——几何工具
- wust 1599弗洛伊德
- ListView工作原理以及优化
- 快速排序讲解(粗略)
- Mysql join连接
- 官网 Mysql Installing MySQL on Linux Using RPM Packages from Oracle