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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • PYTHON主机_我的Python世界PDF

    PYTHON主机_我的Python世界PDF学了好长一段时间Python了,前段时间想找个支持Python(Django)的空间来试试。国外的主机虽然性价比高(都是按G来算),但是没有美元也没有信用卡,就没法了。国内的支持Python(Django)的空间还真是少,我找了好几天就看到两个比较好的:捌号主机和浪点 。但是捌号主机的空间也真是有够贵的,是便宜的也是好几百。最后我选择了浪点的空间。浪点的空间要普通级以上才能开通

    2022年10月10日
    3
  • java多线程系列(四)—ReentrantLock的使用

    java多线程系列(四)—ReentrantLock的使用

    2021年6月16日
    83
  • Pytest(15)pytest分布式执行用例「建议收藏」

    Pytest(15)pytest分布式执行用例「建议收藏」前言平常我们功能测试用例非常多时,比如有1千条用例,假设每个用例执行需要1分钟,如果单个测试人员执行需要1000分钟才能跑完当项目非常紧急时,会需要协调多个测试资源来把任务分成两部分,于是执行时间

    2022年7月30日
    12
  • 免备案cdn的有没有,免备案cdn是适用于什么行业呢[通俗易懂]

    免备案cdn的有没有,免备案cdn是适用于什么行业呢[通俗易懂]蔚可云CDN可以进行网站加速,当然不仅仅是网站,APP也是可以进行加速,提高访问速度提升用户体验,CDN对于互联网公司是离不开的,在一定程度上可有效促进用户的转化,当然CDN还可以用于防御DDOS与CC攻击。那么问题来了,如果是没有备案的网站能不能进行CDN加速呢?大家都知道,随着互联网的发展,必须对其进行规范化,根据工信部的要求,如果你的域名没进行备案,还没取得ICP备案号,那你的网站在国内可能会被禁止用户无法打开的。当然也有例外,蔚可云就可提供免备案的CDN加速产品,支持3…

    2025年10月20日
    5
  • MyEclipse10.6 安装SVN插件方法及插件下载地址

    MyEclipse10.6 安装SVN插件方法及插件下载地址方法一:在线安装1.打开HELP->MyEclipseConfigurationCenter。切换到SoftWare标签页。 2.点击AddSite打开对话框,在对话框Name输入Svn,URL中输入:http://subclipse.tigris.org/update_1.6.x3.在左边栏中找到PersonalSite中找到SVN展开。将Core

    2022年7月20日
    17
  • 数据挖掘的预测建模_数据挖掘建模培训

    数据挖掘的预测建模_数据挖掘建模培训数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。听起来比较抽象,我们举个例子。傍晚小街路面上沁出微雨后的湿润,和煦的细风吹来,抬头看看天边的晚霞,嗯,明天又是一个好天气。走到水果摊旁,挑了个根蒂蜷缩、敲起来声音浊响的青绿西瓜,心里期待着享受这个好瓜。由路面微湿、微风、晚霞得出明天是个好天气。根蒂蜷缩、敲声浊响、色泽青绿推断出这是个好瓜,显然,我们是根据以往的经验来对未来或未知的事物做出预测。人可以根据经验对未来进行

    2025年9月12日
    5

发表回复

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

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