基于形态学运算的图像变换

形态学滤波  图像  腐蚀、膨胀、开闭运算 边缘和角点检测

通常使用于2值图像

形态学的惯例是用白色表示前景物体,用黑色表示背景

腐蚀:对白色部分进行减少

膨胀:对白色部分进行膨胀

原理是:图像的腐蚀与膨胀,其实就是一个核结构(矩形、圆形或十字形)从头到尾进行图像矩阵遍历,并将锚点所在像素赋予核区域内像素最大值或最小值的过程;腐蚀操作即以核结构的锚点(默认为中心点)为像素点依次遍历图像所有像素点,取核结构区域内的最小值赋给锚点所在的像素点,这样就达到了腐蚀效果(将图像高像素值(高亮)区域缩小),具体腐蚀范围(缩小范围)以核矩阵区域大小及锚点位置为准(若3*3矩形,锚点在中心,则图像缩小了1个像素,以此类推核区域越大腐蚀效果越明显);膨胀操作与腐蚀操作相反,将最大值赋给锚点,膨胀范围原理与腐蚀相同。


目的:用于图像分割。


cv::Scalar(1)

// make a 7x7 complex matrix filled with 1+3j.

Mat M(7,7,CV_32FC2,Scalar(1,3));

解释如下:创建一个M矩阵,7行7列,类型为CV_32F,C2表示有2个通道。Scalar(1,3)是对矩阵进行初始化赋值。第一个通道全为1,第2个通道全为3。

http://blog.csdn.net/Eroslol/article/details/52525541

二值图像 0 255  单通道

灰度图像 0到255 单通道

开运算和闭运算的定义

闭运算定义为对图像先膨胀再腐蚀

开运算定义为对图像先腐蚀再膨胀

开滤波器和闭滤波器的作用

开滤波器移除的是场景中比较小的物体。

闭滤波器将分割成碎片的物体重新连接

闭、开运算:获得场景的主要物体

多次使用相同的开运算(或者闭运算)是没有效果的。

分水岭算法  图像  分割

你不可能什么都懂吧。那问题记在哪。

分水岭算法的输入参数P118

分水岭算法的处理过程

图像格式转化

src.convertTo(des,CV_8U,255,255)

src中的每个像素的值X255+255 , 其中 大于255的赋值为255。

src.convertTo(des,CV_8U)

src中像素的值高于255的一律设置成255

cv::Point(image.cols/2+10,image.rows/2+10)  中心点的坐标

GrabCut算法 图像  提取前景物体(分割效果最好)但是不是基于数学形态学。

你可能感兴趣的:(基于形态学运算的图像变换)