opencv-形态处理

opencv-形态处理

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

开运算 (Opening)

  • 原理摘自:http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/imgproc/opening_closing_hats/opening_closing_hats.html

  • 开运算是通过先对图像腐蚀再膨胀实现的。

    dst = open( src, element) = dilate( erode( src, element ) )

  • 可以排除小团块物体(如果物体较背景明亮)

  • 请看以下。左图是原图像,右图是採用开运算转换之后的结果图。

    观察发现字母拐弯处的白色空间消失。

  • opencv-形态处理opencv-形态处理

闭运算(Closing)

  • 闭运算是通过先对图像膨胀再腐蚀实现的。

    dst = close( src, element ) = erode( dilate( src, element ) )

  • 可以排除小型黑洞(黑色区域)。

    opencv-形态处理opencv-形态处理

形态梯度(Morphological Gradient)

  • 膨胀图与腐蚀图之差

    dst = morph_{grad}( src, element ) = dilate( src, element ) - erode( src, element )

  • 可以保留物体的边缘轮廓,例如以下所看到的:

    opencv-形态处理opencv-形态处理

顶帽(Top Hat)

  • 原图像与开运算结果图之差

    dst = tophat( src, element ) = src - open( src, element )

    opencv-形态处理opencv-形态处理

黑帽(Black Hat)

  • 闭运算结果图与原图像之差

    dst = blackhat( src, element ) = close( src, element ) - src

    opencv-形态处理opencv-形态处理

  • 代码:
  • // ConsoleApplication3_6_23.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include<opencv2/opencv.hpp>#include<iostream>using namespace std;using namespace cv;Mat src,dst;int pro_elem = 0;int pro_size = 0;int pro_operator = 0;const int max_elem = 2;const int max_size = 21;const int max_operator = 4;char* windowName = "Demo";void Image_pro(int,void*);int _tmain(int argc, _TCHAR* argv[]){	src = imread("hwl.jpg");	if(!src.data)		return -1;	namedWindow(windowName,CV_WINDOW_AUTOSIZE);	createTrackbar("Operator:\n 0:opening-1:closing-2:gradient-3:Top Hat-4:	Black Hat",		windowName,&pro_operator,max_operator,Image_pro);	createTrackbar("Element:\n 0:Rect-1:Cross-2:Ellipse",		windowName,&pro_elem,max_elem,Image_pro);	createTrackbar("Kernel size:\n 2n+1",		windowName,&pro_size,max_size,Image_pro);		Image_pro(0,0);	waitKey(0);	return 0;}void Image_pro(int,void*){	int operation = pro_operator + 2;	Mat  element = getStructuringElement(pro_elem,Size(2*pro_size+1,2*pro_size+1),		Point(pro_size,pro_size));	morphologyEx(src,dst,operation,element);	imshow(windowName,dst);}

版权声明:本文博主原创文章。博客,未经同意,不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117126.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • webService接口服务端与客户端开发(入门级亲测可用)

    webService接口服务端与客户端开发(入门级亲测可用)webService接口服务端与客户端开发网上的有关webService的入门例子很多,但总是让新手云里雾里。看了本篇,如果对您有帮助,请随手一赞。。。经过尝试,发现以下内容:第一:webService服务端开发首先上图,一清二楚、以下weather包中有三种发布服务的方式;如果创建的是Java项目,Server类右键Java运行即可发布,但只能自己访问;如果想让别…

    2022年7月12日
    26
  • Java架构师尼恩_java的面试宝典

    Java架构师尼恩_java的面试宝典加架构师尼恩免费领!专题01:JVM面试题(卷王专供+史上最全+2022面试必备)-V2专题02:Java算法面试题(卷王专供+史上最全+2022面试必备)-V2专题03:Java基础面试题(卷王专供+史上最全+2022面试必备)-V2专题04:架构设计面试题(卷王专供+史上最全+2022面试必备)-V2专题05:Spring面试题__专题06:SpringMVC__专题07:Tomcat面试题(卷王专供+史上最全+2022面试必备)-V2专题0

    2022年9月20日
    1
  • Mac datagrip 2022激活码【2022最新】

    (Mac datagrip 2022激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html2KLKA7BQFO-eyJsaWN…

    2022年4月1日
    548
  • Java实现 Hello World

    Java实现 Hello WorldHelloWorld记事本手写HelloWorldeclipse编辑器从零到一实现HelloWorld记事本手写HelloWorld1.新建Hello文本文件输入以下代码eclipse编辑器从零到一实现HelloWorld

    2022年7月16日
    15
  • 使用group by,having,count函数查询表中某字段相同内容的数据

    使用group by,having,count函数查询表中某字段相同内容的数据

    2021年7月17日
    72
  • centOS7 安装nginx并启动

    centOS7 安装nginx并启动 一、下载安装包  cd/usr/local/software (software可能没有,用mkdir创建或者只到local目录下也行)  wgethttp://nginx.org/download/nginx-1.6.2.tar.gz  (选择一个比较稳定的版本下载即可,或者手动下载后,用xshell传到该目录下也行) 二、解压安装  tar-zx…

    2022年5月7日
    169

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号