EmguCV学习笔记 VB.Net 8.4 pyrMeanShiftFiltering

news2024/9/24 1:26:01

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

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.coloradmin.cn/o/2090375.html

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

相关文章

如何构建大型超市数据处理系统?Java SpringBoot搭配MySQL,实现高效数据管理!

🍊作者:计算机毕设匠心工作室 🍊简介:毕业后就一直专业从事计算机软件程序开发,至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长:按照需求定制化开发项目…

深入了解Pod(一)

一、pod的配置文件 Pod配置文件的属性说明 属性名称 取值类型 是否必须 取值说明 version String √ 版本号 ,例如V1 kind String √ Pod metadata Object √ 元数据 metadata.name String √ Pod名称 metadata.namespace String √…

分销渠道|中小企业可以有推广计划吗?

大家好,我是林叔,专注于分享SaaS企业渠道分销的实战经验。今天,我们来聊聊一个常被中小企业主忽视但极具潜力的营销策略——推广计划。很多人可能觉得推广计划是大企业的专利,但实际上,对于中小企业而言,它…

pycharm怎样关联anaconda虚拟环境.conda executable not found

刚下载的pycharm和anaconda怎样进行关联。 打开pycharm时,点击右侧的conda环境时,出现anaconda.conda executable not found,说明你的anaconda和pycharm没有进行关联。 第一步:重启电脑 第二步:点击圆圈中的文件夹按…

laravel8快速开发简单博客系统(二)

目录 一、创建文章增删改成提交的控制器 1、注释文章查看权限,非登录状态可以查看文章列表页 2、创建提交控制器post 3、创建数据表 4、创建提交post资源路由 5、创建post控制器view目录post 二、文章添加功能实现 1.模板显示 2.复制home.blade.php模板到po…

Django+Vue宠物服务管理系统的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 需要的环境3.2 Django接口层3.3 实体类3.4 config.ini3.5 启动类3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质创作者&…

探讨离线AI知识库的技术实现:AntSKPro AI 离线知识库一体机

在现代社会,离线AI解决方案越来越受到关注。最近我接触到一款名为AntSKPro AI 离线知识库一体机的设备,它能在没有网络连接的情况下提供强大的AI支持。这里我想分享一下这款设备的一些技术亮点和使用体验。 技术架构与实现 AntSKPro AI 离线知…

Java 并发编程解析 | 如何正确理解Java领域中的内存模型,主要是解决了什么问题?

苍穹之边,浩瀚之挚,眰恦之美; 悟心悟性,善始善终,惟善惟道! —— 朝槿《朝槿兮年说》 写在开头 这些年,随着CPU、内存、I/O 设备都在不断迭代,不断朝着更快的方向努力。在这个快速发…

探索Python测试的奥秘:nose库的魔法之旅

文章目录 探索Python测试的奥秘:nose库的魔法之旅1. 背景:为什么要用nose?2. nose是什么?3. 如何安装nose?4. 五个简单的库函数使用方法4.1 nose.tools.assert_true4.2 nose.tools.assert_equal4.3 nose.tools.raises4…

【通过h5作为中转页跳转到微信小程序】

1。从小程序跳转小程序内部页面 <!DOCTYPE html> <html><head><title>H5跳转小程序</title><meta charset"UTF-8"><meta name"viewport"content"widthdevice-width, initial-scale1.0, minimum-scale1.0, ma…

解释:某树的孩子兄弟链是什么意思?

&#x1f31f; 嗨&#xff0c;我是命运之光&#xff01; &#x1f30d; 2024&#xff0c;每日百字&#xff0c;记录时光&#xff0c;感谢有你一路同行。 &#x1f680; 携手启航&#xff0c;探索未知&#xff0c;激发潜能&#xff0c;每一步都意义非凡。 孩子兄弟链&#xff…

280Hz显示器 - HKC G27H3显示器

280Hz显示器 - HKC G27H3显示器 当电竞遇上显示器&#xff0c;就像是超级英雄找到了他的战衣&#xff0c;完美搭配&#xff0c;所向披靡。今天&#xff0c;我们要聊的这款HKC G27H3显示器&#xff0c;简直就是电竞界的"速度与激情"&#xff0c;让我们来看看它如何成为…

HANA5 游戏逆向

前言 某著名百合R18游戏 以前尝试逆过一次&#xff0c;半途而废了。今天想起来再逆一下&#xff0c;记录下逆向的过程。 游戏文件结构&#xff1a; 游戏资源extract 主要目标是弄明白游戏资源&#xff1a;SE、CG这些怎么加载解密的。 还是像万华镜那样下三个API断点&…

windows下载安装Node.js 并切换镜像地址

一、 windows下载Node.js Node.js官方安装包及源码下载地址为&#xff1a;https://nodejs.org/en/download/。 如果下载过慢可以使用nullhttps://nodejs.cn/download/ 下载对应版本 二、安装 双击安装包 全部点next即可 三、测试是否安装成功 打开命令窗口查看node版本 …

Unity SceneView 相机聚焦到指定位置

SceneView 相机聚焦到指定位置 SceneView.lastActiveSceneView.LookAt(pos);

书生大模型实战营基础(5)——XTuner 微调个人小助手认知任务

目录 1 、微调前置基础 2、准备工作 2.1环境配置 结果 2.2模型准备 目录结构&#xff1a;在目录结构中可以看出&#xff0c;internlm2-chat-1_8b 是一个符号链接 3、快速开始 3.1 微调前的模型对话 获取开发机端口和密码&#xff1a; 3.2 指令跟随微调 3.2.1 准备数…

基于Yolov5_6.1、LPRNet、PySide6开发的车牌识别系统

项目概述 项目背景 随着车辆数量的不断增加&#xff0c;车牌识别系统在交通管理、停车场自动化等领域变得越来越重要。本项目利用先进的深度学习技术和现代图形用户界面框架来实现高效的车牌识别功能。 项目特点 高效识别&#xff1a;采用 YOLOv5_6.1 进行车牌定位&#xff…

Linux--IO模型_多路转接

目录 0.往期文章 1.五种IO模型介绍 概念 调用函数&#xff08;非阻塞IO&#xff09; 2.详解多路转接 之select select函数介绍 设置文件描述符 写一个基于select的TCP服务器 辅助库 基于TCP的Socket封装 服务器代码 测试服务器 小结 3.详解多路转接 之poll poll函…

【云游戏】点量云流赋能大型游戏新体验

点量小刘发现近期国产化大型3A游戏《黑神话&#xff1a;悟空》的发售&#xff0c;可谓是赢得了一波好评。从场景内容来说深厚的文化底蕴支撑和高质量精美的特效及画面制作令人眼前一亮&#xff0c;作为备受瞩目的一款游戏&#xff0c;从技术层面来说&#xff0c;该游戏也离不开…

关于武汉芯景科技有限公司的多协议收发芯片XJ3160开发指南(兼容MAX3160)

一、芯片引脚介绍 1.芯片引脚图 2.引脚描述 二、功能模式 1.RS232模式 2.RS485模式