网站建设费算不算固定资产,怎样搞网络营销,上海软件网站建设,好的网站分享1#xff0c;简介
1.1#xff0c;Opencv提供滤波处理函数
方框滤波#xff0c;BoxBlur函数
均值滤波(领域平均滤波)#xff0c;Blur函数
高斯滤波#xff0c;GaussianBlur函数
中值滤波#xff0c;medianBlur函数
双边滤波#xff0c;bilateralFilter函数 1.2简介
1.1Opencv提供滤波处理函数
方框滤波BoxBlur函数
均值滤波(领域平均滤波)Blur函数
高斯滤波GaussianBlur函数
中值滤波medianBlur函数
双边滤波bilateralFilter函数 1.2常见线性滤波器
低通滤波器:允许低频率通过。
高通滤波器:允许高频率通过。
带通滤波器:允许一定范围频率通过。
带阻滤波器:阻止一定范围频率通过并且允许其他频率通过。
全通滤波器:允许所有频率通过仅仅改变相位关系。
陷波滤波器(Band-StopFilter):阻止-个狭窄频率范围通过是一种特殊带阻滤波器。 2目的 2.1对噪声进行抑制
2.2抽出对象的特征 3均值滤波
线性滤波
CV_EXPORTS_W void blur( InputArray src, OutputArray dst,Size ksize, Point anchor Point(-1,-1),int borderType BORDER_DEFAULT );//参数1(src)原图
//参数2(dst)处理后的图像
//参数3(ksize)核的尺寸正奇数
//参数4(anchor)锚点默认值 Point(-l-l)表示这个锚点在核的中心
//参数5(borderType)边框类型原理
在图像上对目标像素给出一个内核该内核包括了其周围的临近像素(比如以目标像素为中心的周围8(3x3-1)个像素构成一个滤波内核去掉目标像素本身)。再用内核中的全体像素的平均值来代替原来像素值。
缺陷
不能很好地保护图像细节在图像去噪的同时也破坏了图像的细节部分从而使图像变得模糊不能很好地去除噪声点 4方框滤波
线性滤波
CV_EXPORTS_W void boxFilter( InputArray src, OutputArray dst, int ddepth,Size ksize, Point anchor Point(-1,-1),bool normalize true,int borderType BORDER_DEFAULT );//参数1(src)原图
//参数2(dst)处理后的图像
//参数3(ddepth)处理后图像深度-1代表使用原图深度
//参数4(ksize)核的尺寸正奇数
//参数5(anchor)锚点默认值 Point(-l-l)表示这个锚点在核的中心
//参数6(normalize)归一化处理
//参数7(borderType)边框类型当normalize true结果等于均值滤波内核像素的和 / (内核大小-1)
当normalize false结果计算图元像素内核像素的和导致像素值容易超出最大值255截断变为255白色图像 5高斯滤波
线性滤波
CV_EXPORTS_W void GaussianBlur( InputArray src, OutputArray dst, Size ksize,double sigmaX, double sigmaY 0,int borderType BORDER_DEFAULT );//参数1(src)原图
//参数2(dst)处理后图像
//参数3(ksize)内核大小正奇数
//参数4(sigmaX)X方向上的高斯核标准偏差
//参数5(sigmaY)Y方向上的高斯核标准偏差
//参数6(borderType )边框类型
高斯滤波就是对整幅图像进行加权平均的过程每一个像素点的值都由其本身和邻域内的其他像素值经过加权平均后得到。高斯滤波具体操作是:用一个内核(或称卷积、掩模)扫描图像中的每一个像素用内核确定的邻域内像素的加权平均灰度值去替代内核中心像素点的值。
效果类似经过一个半透明屏幕在观察图像 6中值滤波
非线性滤波
CV_EXPORTS_W void medianBlur( InputArray src, OutputArray dst, int ksize );//参数1(src)原图
//参数2(dst)处理后图像
//参数3(ksize)内核大小正奇数
用像素点邻域灰度值的中值来代替该像素点的灰度值该方法在去除脉冲噪声、椒盐噪声、斑点噪声的同时又能保留图像的边缘细节。
与均值滤波相比中值滤波无论是在消除l噪声还是保存边缘方面都是一个不错的方法但是耗时是均值滤波5倍以上。耗时长 7双边滤波
非线性滤波
CV_EXPORTS_W void bilateralFilter( InputArray src, OutputArray dst, int d,double sigmaColor, double sigmaSpace,int borderType BORDER_DEFAULT );//参数1(src)原图
//参数2(dst)处理后图像
//参数3(d)表示在过滤过程中每个像素邻域的直径
//参数4(sigmaColor)颜色空间滤波器的sigma值。这个参数的值越大就表明该像素邻域内有越宽广的颜色会被混合到一起产生较大的半相等颜色区域
//参数5(sigmaSpace)坐标空间中滤波器的sigma值坐标空间的标注方差。它的数值越大意味着越远的像素会相互影响从而使更大的区域中足够相似的颜色获取相同的颜色。当 d0时 d指定了邻域大小且与sigmaSpace无关。否则 d正比于sigmaSpace
//参数6(borderType)边框类型
双边滤波(Bilateralfil忧r)是一种非线性的滤波方法是结合图像的空间邻近度和像素值相似度的一种折中处理同时考虑空域信息和灰度相似性达到保边去噪的目的具有简单、非法代、局部的特点。
双边滤波器的好处是可以做边缘保存。耗时长 8形态学滤波
简单来讲形态学操作就是基于形状的一系列图像处理操作(腐蚀/膨胀等等)。腐蚀和膨胀是对白色部分(高亮部分)而言的不是黑色部分。膨胀是图像中的高亮部分进行膨胀类似于领域扩张效果图拥有比原图更大的高亮区域。腐蚀是原图中的高亮部分被腐蚀类似于领域被蚕食效果图拥有比原图更小的高亮区域
8.1膨胀
求局部最大值的操作
CV_EXPORTS_W void dilate( InputArray src, OutputArray dst, InputArray kernel,Point anchor Point(-1,-1), int iterations 1,int borderType BORDER_CONSTANT,const Scalar borderValue morphologyDefaultBorderValue() );//参数1(src)原图
//参数2(dst)处理后图像
//参数3(kernel)内核,可以是正方向或者矩形可以通过cv2.getStructuringElement()函数创建
//参数4(anchor )锚点
//参数5(iterations)迭代次数如连续膨胀几次
//参数6(borderType )边框类型
//参数7(borderValue )边界值
获取内核
CV_EXPORTS_W Mat getStructuringElement(int shape, Size ksize, Point anchor Point(-1,-1));//参数1(shape)设定卷积核的形状有三个可选值MORPH_RECT返回矩形卷积核、MORPH_CROSS返回十字形卷积核和MORPH_ELLIPSE返回椭圆形卷积核
//参数2(ksize)表示卷积核有x行y列
//参数3(anchor )设定锚点的位置一般设为(-1,-1)表示锚点位于核中心。
注参数1(shape)枚举定义
enum MorphShapes {MORPH_RECT 0, MORPH_CROSS 1, MORPH_ELLIPSE 2
};
8.2腐蚀
求局部最小值的操作
CV_EXPORTS_W void erode( InputArray src, OutputArray dst, InputArray kernel,Point anchor Point(-1,-1), int iterations 1,int borderType BORDER_CONSTANT,const Scalar borderValue morphologyDefaultBorderValue() );//参数1(src)原图
//参数2(dst)处理后图像
//参数3(kernel)内核,可以是正方向或者矩形可以通过cv2.getStructuringElement()函数创建
//参数4(anchor )锚点
//参数5(iterations)迭代次数如连续腐蚀几次
//参数6(borderType )边框类型
//参数7(borderValue )边界值
8.3开运算
先腐蚀后膨胀。
开运算可以用来消除小物体在纤细点处分离物体并且在平滑较大物体的边界的同时不明显改变其面积。
CV_EXPORTS_W 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() );//参数1(src)原图
//参数2(dst)处理后图像
//参数3(op)形态学操作的类型可以是腐蚀、膨胀、开运算、闭运算、顶帽、黑帽等
//参数4(kernel)内核,可以是正方向或者矩形可以通过cv2.getStructuringElement()函数创建
//参数5(anchor )锚点
//参数6(iterations)迭代次数
//参数7(borderType )边框类型
//参数8(borderValue )边界值注参数3(op)枚举定义
enum MorphTypes{MORPH_ERODE 0, MORPH_DILATE 1, MORPH_OPEN 2, MORPH_CLOSE 3, MORPH_GRADIENT 4, MORPH_TOPHAT 5, MORPH_BLACKHAT 6, MORPH_HITMISS 7
};/*MORPH_ERODE //腐蚀MORPH_DILATE //膨胀MORPH_OPEN //开运算MORPH_CLOSE //闭运算MORPH_GRADIENT //梯度MORPH_TOPHAT //顶帽MORPH_BLACKHAT //黑帽MORPH_HITMISS //Hit-or-Miss 运算是一种特殊的形态学运算通常用于检测满足特定形状的物体
*/
8.4闭运算
先膨胀后腐蚀。
能够排除小型黑洞(黑色区域)。 8.5梯度
膨胀图与腐蚀图之差。
对二值图像进行这一操作可以将团块(blob)的边缘突出出来。我们可以用形态学梯度来保留物体的边缘轮廓。 8.6梯度
膨胀图与腐蚀图之差。
对二值图像进行这一操作可以将团块(blob)的边缘突出出来。我们可以用形态学梯度来保留物体的边缘轮廓。 8.7顶帽
原图与开运算的结果图之差。(原图 - 开运算)
开运算带来的结果是放大了裂缝或者局部低亮度的区域因此从原图中减去开运算后的图得到的效果图突出了比原图轮廓周围的区域更明亮的区域且这一操作与选择的核的大小相关。
运算往往用来分离比邻近点亮一些的斑块。
在一副图像具有大幅的背景而做小物品比较有规律的情况下可以使用顶帽运算进行背景提取。 8.8黑帽
闭运算的结果图与原图之差。闭运算 - 原图
黑帽运算后的效果图突出了比原图轮廓周围的区域更暗的区域且这一操作和|选择的核的大小相关。
黑帽运算用来分离比邻近点暗一些的斑块效果图有着非常完美的轮廓。