EmguCV学习笔记 VB.Net 8.4 pyrMeanShiftFiltering

 版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。

EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。

教程VB.net版本请访问:EmguCV学习笔记 VB.Net 目录-CSDN博客

教程C#版本请访问:EmguCV学习笔记 C# 目录-CSDN博客

笔者的博客网址:https://blog.csdn.net/uruseibest

教程配套文件及相关说明以及如何获得pdf教程和代码,请移步:EmguCV学习笔记

学习VB.Net知识,请移步: vb.net 教程 目录_vb中如何用datagridview-CSDN博客

 学习C#知识,请移步:C# 教程 目录_c#教程目录-CSDN博客

 

8.4 pyrMeanShiftFiltering

Mean-shift算法是一种图像分割和聚类算法,可以用于对图像中的颜色或纹理进行分割和聚类。在实现中,Mean-shift算法通常需要选择合适的核函数和带宽参数,以便更好的计算密度函数。同时,还需要考虑如何处理边界处的像素,以避免边界处的像素被错误地分类。Mean-shift算法在计算量和时间复杂度上较高,但是具有较好的稳定性和可靠性,可以用于图像分割、目标跟踪等应用场景。

CvInvoke.PyrMeanShiftFiltering方法通过图像金字塔处理,用于对图像进行图像分割和去噪。它在应用均值漂移滤波器(Mean Shift Filter)之前先对图像进行了降采样,以减少噪声和细节对分割结果的影响。PyrMeanShiftFiltering方法可以根据像素值的相似性将图像分割成不同的区域,并且能够保留边缘信息,适用于对噪声较多、细节较多的图像进行分割。该方法声明如下:

Public Shared Sub PyrMeanShiftFiltering (

         src As IInputArray,

         dst As IOutputArray,

         sp As Double,

         sr As Double,

         maxLevel As Integer,

         termcrit As MCvTermCriteria

)

参数说明:

  1. src:输入图像,可以是单通道或多通道图像。
  2. dst:输出图像,与输入图像具有相同的尺寸和深度。
  3. sp:空间窗口的半径,用于控制空间范围内的像素相似性。
  4. sr:颜色窗口的半径,用于控制颜色相似性。
  5. maxLevel:金字塔的最大层数,用于多尺度处理。
  6. termcrit:终止条件,用于控制算法的收敛性。这是一个McvTermCriteria类型。请参看7.1.4节【CornerSubPix】。

注意:事实上从该方法名称来看,它带有Filter(滤波),更和4.2 节【卷积操作】的各方法作用接近。

【代码位置:frmChapter8】Button8_Click

    Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click

        Dim msrc As New Mat("C:\learnEmgucv\tower.jpg", ImreadModes.Color)

        ImageBox1.Image = msrc

        Dim criteria As New MCvTermCriteria(10, 0.1)

        Dim mout As New Mat

        CvInvoke.PyrMeanShiftFiltering(msrc, mout, 80, 80, 4, criteria)

        ' 显示结果

        CvInvoke.Imshow("mout", mout)

        Dim mcannyout As New Mat

        CvInvoke.Canny(mout, mcannyout, 150, 300)

        CvInvoke.Imshow("mcannyout", mcannyout)

        ' 等待按键退出

        CvInvoke.WaitKey(0)

End Sub

输出结果如下图所示:

图8-8 PyrMeanShiftFiltering分离前景

代码最后使用Canny提取边缘,可以看到图像边缘明显变少,分隔区域也明显整齐平滑。

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

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

相关文章

Java项目:137 springboot基于springboot的智能家居系统

作者主页:源码空间codegym 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本基于Springboot的智能家居系统提供管理员、用户两种角色的服务。 总的功能个人中心、基础数据管理、家具管理、任务管理和用户管理。本系统…

显微镜基础知识--脑机起步

一、显微镜类别 学生级、实验级、研究级生物显微镜单目型、双目型、三目型生物显微镜 二、显微镜基础原理 (1)光学显微镜 光学显微镜主要由目镜、物镜、载物台和反光镜(集光镜)组成。目镜和物镜都是凸透镜,焦距不同。物镜的凸透镜焦距小于…

Web攻防之应急响应(二)

目录 前提 🍔学习Java内存马前置知识 内存马 内存马的介绍 内存马的类型众多 内存马的存在形式 Java web的基础知识: Java内存马的排查思路: 🍔开始查杀之前的需要准备 1.登录主机启动服务器 2.生成jsp马并连接成功 …

MATLAB 仿真跳频扩频通信系统

1. 简介 跳频扩频(FHSS)是一种通过在不同的频率之间快速切换来对抗窄带干扰的技术。在这篇博客中,我们将使用 MATLAB 进行 FHSS 通信系统的仿真,模拟跳频过程、调制、解调以及信号在不同步骤中的变化。通过对仿真结果进行可视化&…

python-简单的dos攻击

前言 这个是DOS攻击学习(注意:千万别去攻击有商业价值的服务器或应用,不然会死的很惨(只有一个IP通过公网访问容易被抓),前提是网站没有攻击防御) 创建一个以python编写的后端web服务(好观察) 安装flask pip install flask from flask import Flaskapp …

前端入门了解

1. 网页 1.1 网页概述 1.2 超文本标记语言 1.3 网页的形成 2. 浏览器了解 网页需要通过浏览器来展示,下面是关于浏览器的两点; 国际上通用的浏览器有如下六个(百度,360,uc等是主要在国内使用), 3. We…

Apple 重發iOS 17.6.1 修正版

蘋果又再次替 iPhone 和 iPad 用戶釋出 iOS 17.6.1更新(21G101),這次更新與8日所推出的 iOS 17.6.1 正式版相同,官方在更新說明內也沒有提到任何修改,依舊是維持修正進階資料保護的問題 iOS 17.6.1 更新修正版內容重點…

面向切面编程

1. 增删改查 三层干啥 2. 文件上传 第三方api(接口) 调用准备 -- 官方代码 -- 工具类 3. 登录鉴权 登录(查询 密码) 鉴权(拦截器)登录完成后--后台生成token返回给浏览器--每次浏览器发请求时候携带token--服务器需要使用拦截器拦截请求,获取token--校验token生成 token校…

借老系统重构机会我写了个groovy规则引擎

公司老系统的重构计划早就有了,为了对Java硬编码的各种校验规则进行重构,特地参考了相关技术,最终选择了groovy进行了系统的学习,并编写了一个即插即用的轻量级规则引擎。 文章目录 项目背景技术选型groovy的性能groovy脚本执行线…

【拉取Git项目到本地,知识小记,后续再改】

前提:Git已经安装好 https://blog.csdn.net/mukes/article/details/115693833 安装至步骤2.2.4即可 第一步创建本地项目目录 第二步获取他人提供的项目git地址或者自己在网上找的他人项目的git地址 Git 全局设置: git init git config --global user.name “ASxx”…

1998-2023年上市公司金融/信贷/资本资源错配程度数据(含原始数据+计算代码+结果)

1998-2023年上市公司金融/信贷/资本资源错配程度数据(含原始数据计算代码结果) 1、时间:1998-2023年 2、来源:上市公司年报 3、指标:证券代码、year、应付账款、负债合计、利息支出、行业代码、是否ST或PT、上市日期…

Webpack详解与配置环境

webpack:webpack网址 1、工作原理: Webpack是一个非常强大的静态模块的打包工具。从文件入口开始,递归解析以来关系,然后将所有模块打包成一个或多个budle文件。 2、webpack核心概念: Entry:入口起点(en…

Linux——redis理论、安全模型

一、redis 主要的data type redis 的原生客户端redis 支持通过python php golang 等语言连接redis 主要适用场景 二、redis如何进行数据存储 非关系数据库 不使用二维表 redis 使用键值对完成数据的存储redis一共有16个库 ,不同的库使用编号 0-15redis 在…

设计模式-装饰器代理观察者

3.7 装饰器模式(代码见vs) 装饰器又叫做包装模式,允许向一个现有的对象添加新的功能,同时又不改变其结构。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法完整性的前提下,提供了额…

前端报文加密

前端加密功能 前端提供简单的AES对称加密算法,注意key 和后端网关配置相同,这里打包混淆后,相对安全。 (lun-ui\src\store\modules\user.js、base-gateway-dev.yml) 后端解密功能 使用hutool提供的工具类进行解密pub…

Linux之grafana+onealert报警

grafana介绍 Grafana是一个开源的度量分析和可视化工具,可以通过将采集的数据分析,查询,然后进行可视化的展示,并能实现报警。 grafana安装与登录 在grafana服务器上安装grafana 下载地址:https://grafana.com/grafana/downloa…

Opencv中的直方图(4)局部直方图均衡技术函数createCLAHE()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 创建一个指向 cv::CLAHE 类的智能指针并初始化它。 函数原型 Ptr<CLAHE> cv::createCLAHE (double clipLimit 40.0,Size tileGridSize…

12、Django Admin在列表视图页面上显示计算字段

两种方法&#xff1a; 注册模型有两种方式&#xff0c;需要首先添加或者修改admin中的注册模型如下方式 admin.register(Origin) class OriginAdmin(admin.ModelAdmin):list_display ("name",) 1、在models的模型类中添加函数 def hero_count(self,):return sel…

评价决策类——层次分析法+数学建模+实战分析

目录 一、前言 二、历年题型分析 2.1 常用算法归纳 2.1.1 优化类算法 2.1.2 预测类算法 2.1.3 评价决策类 2.1.4 NP-hard类 2.2 评价类模型求解 2.2.1 层次分析法&#xff08;AHP&#xff09; 2.2.2 多指标评价法&#xff08;MCDA&#xff09; 2.2.3 算法区别 三、层…

如何把自动获取的ip地址固定

在大多数网络环境中&#xff0c;‌设备通常会自动从DHCP服务器获取IP地址。‌这种动态分配IP的方式虽然灵活方便&#xff0c;‌但在某些特定场景下&#xff0c;‌我们可能需要将设备的IP地址固定下来&#xff0c;‌以确保网络连接的稳定性和可访问性。‌本文将详细介绍如何把自…