OpenCV(三十):图像膨胀

1.图像膨胀原理

        图像膨胀的原理是将一个结构元素(也称为核或模板)在图像上滑动,并将其与图像中对应位置的像素进行比较。如果结构元素的所有像素与图像中对应位置的像素都匹配,那么该位置的像素值保持不变。如果结构元素的任何一个像素与图像中对应位置的像素不匹配,那么 图像中对应位置的像素被置为1,从而改变了图像的形状和结构。

2.结构元素生成函数getStructuringElement()

Mat cv::getStructuringElement ( int    shape,

Size ksize,

Point anchor = point(-1,-1)

)

  • shape:结构元素的种类。
  • ksize:结构元素的尺寸大小。
  • anchor:中心点的位置,默认参数为结构元素的几何中心点。

其中结构元素的种类有:

3.图像膨胀操作函数dilate()

void cv::dilate ( InputArray  src,

OutputArray            dst,

InputArray                kernel,

Point                         anchor = point(-1,-1),

int                            iterations = 1,

int                            borderType = BORDER_CONSTANT,

const Scalar & borderValue = morphologyDefaultBorderValue()

)

  • src: 输入的待膨胀图像,图像的通道数可以是任意的,但是图像的数据类型必须是CV_8U,CV_16U,CV_16S,CV_32F或CV_64F之一。
  • dst:腐蚀后的输出图像,与输入图像src具有相同的尺寸和数据类型。
  • kernel:用于膨胀操作的结构元素,可以自己输入,也可以用getStructuringElement0函数生成
  • anchor:中心点在结构元素中的位置,默认参数为结构元素的几何中心点
  • iterations:腐蚀的次数
  • borderType:像素外推法选择标志
  • borderValue:边界不变的边界值。

4.示例代码:

//图像膨胀
void image_dilate(Mat image){Mat gray;cvtColor(image,gray,COLOR_BGR2GRAY);//灰度化Mat dilate_black1,dilate_black2;//黑背景图像膨胀Mat struct1= getStructuringElement(0,Size(3,3));//矩形结构元素Mat struct2= getStructuringElement(1,Size(3,3));//十字结构元素dilate(gray,dilate_black1,struct1);//膨胀dilate(gray,dilate_black2,struct2);}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/75651.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#__多线程之任务和连续任务

/// <summary> /// /// 任务&#xff1a;System.Threading.Tasks&#xff08;异步编程的一种实现方式&#xff09; /// 表应完成某个单元工作。这个工作可以在单独的线程中运行&#xff0c;也可以以同步方式启动一个任务。 /// /// 连续任务&#…

Mysql数据库基础总结:

什么是数据库&#xff1a; 数据库&#xff08;DataBase&#xff09;&#xff1a;存储和管理数据的一个仓库。 数据库类型分为&#xff1a;关系型数据库和非关系型数据库。 关系型数据库&#xff08;SQL&#xff09;&#xff1a;存储的数据以行和列为格式&#xff0c;类似于e…

wpf C# 用USB虚拟串口最高速下载大文件 每包400万字节 平均0.7s/M,支持批量多设备同时下载。自动识别串口。源码示例可自由定制。

C# 用USB虚拟串口下载大文件 每包400万字节 平均0.7s/M。支持批量多设备同时下载。自动识别串口。可自由定制。 int 32位有符号整数 -2147483648~2147483647 但500万字节时 write时报端口IO异常。可能是驱动限制的。 之前用这个助手发文件&#xff0c;连续发送&#xff0…

【创新项目探索】大数据服务omnidata-hive-connector介绍

omnidata-hive-connector介绍 omnidata-hive-connector是一种将大数据组件Hive的算子下推到存储节点上的服务&#xff0c;从而实现近数据计算&#xff0c;减少网络带宽&#xff0c;提升Hive的查询性能。目前支持Hive on Tez。omnidata-hive-connector已在openEuler社区开源。 …

运行java命令出现 Error: Invalid or corrupt jarfile XXX.jar

朋友 我当你一秒朋友 朋友 我当你一世朋友 奇怪 过去再不堪回首 怀缅 时时其实还有 运行java命令出现 Error: Invalid or corrupt jarfile XXX.jar 基本可以断定&#xff0c;是jar不完整导致的。不完整&#xff01;&#xff01;&#xff01;记住关键字 检查1&#xff1a; …

【Mysql】数据库第三讲(表的约束、基本查询语句)

表的约束和基本查询 1.表的约束1.1 空属性1.2默认值1.3列描述1.4 zerofill1.5主键1.6 自增长1.7 唯一键1.8外键 1.表的约束 真正约束字段的是数据类型&#xff0c;但是数据类型约束很单一&#xff0c; 需要有一些额外的约束&#xff0c; 更好的保证数据的合法性&#xff0c;从…

mysql-norebuild的ddl测试

一、简介 为了保证需要注意的有norebuild和ignore两种 /** Operations that InnoDB cares about and can perform without rebuild */ static const Alter_inplace_info::HA_ALTER_FLAGS INNOBASE_ALTER_NOREBUILD INNOBASE_ONLINE_CREATE| INNOBASE_FOREIGN_OPERATIONS| Alt…

colcon build --symlink-install ,编译失败解决方法

colcon build --symlink-install编译ros2源代码时&#xff0c;或者其example时报此错误。 EasyInstallDeprecationWarning: easy_install command is deprecated.报错的路径是/usr/lib/python3/dist-packages中的setuptools&#xff0c;版本是setuptools-59.6.0.egg-info&…

Python列表操作指南:索引、切片、遍历与综合应用

文章目录 列表简介创建列表索引和切片列表的长度列表的拼接和重复检查元素是否存在列表的方法index() 方法count() 方法 列表的修改和删除修改元素删除元素列表的排序和反转添加元素 列表的拷贝列表的遍历列表的切片列表的嵌套列表推导式 python精品专栏推荐python基础知识&…

鸿蒙应用开发之容器组件

一、概述 一个丰富的页面通常是由很多基础组件组成的&#xff0c;那么我们如何才能让这些组件有条不紊地在页面上布局呢&#xff1f;这就需要借助容器组件来实现。 容器组件是一种比较特殊的组件&#xff0c;它可以包含其他的组件&#xff0c;而且按照一定的规律布局&#xf…

【Python】关于自定义对象的Json序列化和反序列化

背景 最近使用Ptyon爬虫数据时&#xff0c;遇到对象无法转换为JSON序列化对象问题TypeError: Object of type Main is not JSON serializable 意思&#xff1a; 就是对象不能转换为JSON序列化对象 原因&#xff1a; 是对象没有自定义实现转换为JSON序列化对象的方法没有。 实…

基于SSM的精品酒销售管理系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

Java项目-苍穹外卖-Day10-SpirngTask及WebSocket

文章目录 前言SpringTask介绍SpringTask_corn表达式Spring_Task入门案例 订单状态定时处理需求分析代码开发功能测试 WebScoket介绍入门案例 来单提醒需求分析代码开发功能测试 客户催单代码开发功能测试 前言 本章实现的业务功能 超时未支付订单自动取消&#xff0c;配送中订…

想了解Java内存分析工具MAT?看这里哦

MAT 简介 MAT全称为 Eclipse Memory Analyzer Tool &#xff0c;eclipse基金会开源的java堆内存分析工具&#xff0c;可以快速的进行堆内存分析、大对象可视化、类加载器分析、线程分析等。在我们碰到线上内存问题时候&#xff0c;是不可多得的好工具&#xff08;当然也有artha…

打工人必装的5款黑科技软件,办公舒适度立刻提升数倍

分享打工人必装的5款黑科技软件&#xff0c;让你高效完成工作&#xff0c;办公舒适度立刻提升数倍。 DroidCam——手机充当电脑摄像头 DroidCam可以让你的手机充当电脑的摄像头&#xff0c;让手机拍摄到的画面实时投送到电脑屏幕上&#xff0c;也可以充当视频聊天的摄像头&…

民安智库(第三方满意度调研公司)公园游客满意度调查内容

设计公园游客满意度调查指标需要仔细考虑&#xff0c;以确保综合评估游客的体验和需求。以下是一些常见的公园游客满意度调查指标&#xff0c;您可以根据具体情况进行定制&#xff1a; 整体满意度评分&#xff1a; 游客对整个公园体验的总体满意度评分&#xff0c;通常以1到10…

import cv2

我看到一段opencv的代码&#xff0c;是在python环境跑的&#xff0c;我的python环境&#xff08;anaconda - jupyter notebook&#xff09;是刚装好的空白环境&#xff0c;没有opencv包。怎么用anaconda安装一个opencv包呢&#xff1f; 他使用了import cv2&#xff0c;我不知道…

Netty核心原理:一、基础入门-03:NettyServer接收数据

文章目录 一、前言介绍二、代码实现2.1 工程结构2.2 Netty服务端接收数据实现2.2.1 服务端处理器2.2.2 通道初始化2.2.3 netty服务端 2.3 单元测试 一、前言介绍 &#x1f4a1; 介绍使用 netty 写一个能接收数据的 socketServer 服务端。 通过实现通道适配器 ChannelInboundHan…

Windows通过RDP异地远程桌面Ubuntu【内网穿透】

文章目录 前言1. ubuntu安装XRDP2.局域网测试连接3.安装cpolar内网穿透4.cpolar公网地址测试访问5.固定域名公网地址 前言 XRDP是一种开源工具&#xff0c;它允许用户通过Windows RDP访问Linux远程桌面。 除了Windows RDP外&#xff0c;xrdp工具还接受来自其他RDP客户端(如Fre…

基于Python和mysql开发的在线音乐网站系统(源码+数据库+程序配置说明书+程序使用说明书)

一、项目简介 本项目是一套基于Python和mysql开发的在线音乐网站系统(&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Python学习者。 包含&#xff1a;项目源码、项目文档、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经…