彩色图像分割—香蕉提取

实验任务

彩色图像分割—香蕉提取
利用香蕉和其它水果及其背景颜色在R,G,B分量上的差异进行识别,根据香
蕉和其它水果在R,G,B分量的二值化处理,获得特征提取的有效区域,然后提取
特征,达到提取香蕉的目的。附:统计各种水果及个数。
以下处理过程仅供参考:
1) 分别截取图像中香蕉和其它水果的感兴趣区域,并将其转换为R分量、
G分量、B分量的灰度图像;
2) 对各个分量进行灰度值统计,画出灰度直方图;
3) 设定阈值对其进行二值化。.
4) 特征提取。根据香蕉、草莓、奇异果的特征统计出各自的个数

报告

一、 彩色图像分割—香蕉提取
1、 实验目的
利用香蕉和其它水果及其背景颜色在R,G,B分量上的差异进行识别,根据香
蕉和其它水果在R,G,B分量的二值化处理,获得特征提取的有效区域,然后提取
特征,达到提取香蕉的目的。附:统计各种水果及个数。
2、 实验工具
本实验使用Python编程语言(3.9.0)、cv2、numpy和matplotlib等一系列支持库,在Windows 10 x64系统环境实现,IDE是Pycharm 2021.2.3
3、 实验内容
[1] 高斯模糊
[2] 颜色空间转换以及颜色阈值
[3] 形态学操作
[4] 寻找连通操作及轮廓检测
[5] 灰度直方图绘制
4、 实验步骤
4.1高斯模糊
4.1.1 算法原理
服从高斯分布的一类噪声。高斯模糊是通过使用高斯函数对图像中的每个像素进行加权平均来实现的。高斯函数具有钟形曲线,这意味着中心像素具有最高的权重,而远离中心的像素权重逐渐减小。这样可以有效地平滑图像,同时减少边缘模糊的效果。
4.1.2目的
减少图像中的噪声,同时保留图像的主要结构信息。这对于后续的颜色分割、边缘检测等处理步骤是非常有益的,因为减少了噪声可以使这些处理更加准确。
4.1.3参数设置
 ksize:高斯核的大小,必须是正的奇数。例如 (5, 5) 表示一个 5x5 的高斯核。
 sigmaX:高斯核在 X 方向的标准差。如果设置为 0,那么 OpenCV 会根据 ksize 自动计算标准差。
4.1.4操作处理
读取输入图像
应用高斯模糊
4.1.5关键实现代码
在这里插入图片描述
4.1.6处理结果
在这里插入图片描述
在这里插入图片描述
颜色空间转换以及颜色阈值
4.2.1目的
颜色空间转换是为了将图像从一种颜色模型转换到另一种颜色模型,使得颜色的识别更为直观和鲁棒。颜色阈值是一种基于颜色范围来分割图像的技术。通过设定颜色范围,可以从图像中提取出特定颜色的区域,生成二值掩膜。
4.2.2参数设置

4.2.3操作处理
1.颜色空间转换:
 通过 cv2.cvtColor 将图像从 BGR 转换到 HSV 色彩空间,这样可以更好地利用颜色信息进行分割。
 转换后的 hsv_image 可以用于后续的颜色阈值处理。
2.颜色阈值:
 cv2.inRange 函数根据给定的颜色范围创建二值掩膜。例如,banana_mask 将图像中黄色像素设置为白色(255),其他像素设置为黑色(0)。
 对于红色,由于其在 HSV 色彩空间中跨越了两个区间,所以需要分别创建两个掩膜 strawberry_mask1 和 strawberry_mask2,然后使用 cv2.bitwise_or 合并这两个掩膜。
 对于奇异果,根据您提供的颜色范围创建 kiwi_mask。
4.2.4关键实现代码
在这里插入图片描述
在这里插入图片描述

形态学操作
4.3.1原理
形态学操作是一系列基于形状的图像处理操作,主要用于处理二值图像,主要包括膨胀、腐蚀、开运算和闭运算。这些操作通常用于去除噪声、填充孔洞、连接断开的部分等。
 膨胀(Dilation):将图像中的白色区域扩大,常用于连接相近的物体。
 腐蚀(Erosion):将图像中的白色区域缩小,常用于去除小的噪声点。
 开运算(Opening):先腐蚀后膨胀,可以去除小的噪声点,同时保持大的物体不变。
 闭运算(Closing):先膨胀后腐蚀,可以填充孔洞,同时保持大的物体不变。
4.3.1目的
去除噪声
填充孔洞
连接断开的部分
平滑边界
4.3.2参数设置
• 结构元素(Kernel):定义一个用于形态学操作的结构元素。结构元素通常是一个小的矩阵,本次实验5x5 的方形矩阵。
• 迭代次数(Iterations):执行形态学操作的次数,默认为 1。
4.3.3操作处理
应用于各个水果的掩膜上,以去除噪声并改善掩膜的质量。
4.3.4关键实现代码

在这里插入图片描述
寻找连通操作及轮廓检测
4.4.1原理
连通域是指图像中相互连接且具有相同属性(如颜色或灰度值)的像素集合。在二值图像中,连通域指的是所有相连的非零像素。
4.4.2目的
计数物体数量。
标记每个单独的对象。
获取每个连通域的属性
4.4.3参数设置

4.4.4操作处理
cv2.connectedComponents 函数用于寻找二值掩膜中的连通域,并返回每个连通域的标签图像。然后,通过遍历这些连通域来统计每个水果的数量,并在图像上标记它们。

4.4.5关键实现代码
在这里插入图片描述
4.4.6检测结果
在这里插入图片描述
在这里插入图片描述
灰度直方图绘制
4.5.1操作处理
展示图像中红、绿、蓝三个颜色通道的像素分布情况。通过 matplotlib 库,可以方便地绘制和展示这些直方图。
4.5.2关键示例代码

在这里插入图片描述
4.5.3结果展示
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【算法】克里金(Kriging)插值原理及Python应用

文章目录 [toc] 前言一、克里金插值原理1.1 概述1.2 基本公式1.2 权重 w i w_i wi​的确定1.3 拟合函数的确定 二、Python建模与可视化2.1 Demo2.1.1 随机生成已知格网点2.1.2 拟合2.1.3 评估内符合精度2.1.3 内插未知格网点2.1.4 画图 2.2 结果图 参考文献 前言 最近学习了一下…

QML自定义滑动条Slider的样式

代码展示 import QtQuick 2.9 import QtQuick.Window 2.2 import QtQuick.Controls 2.1Window {visible: truewidth: 640height: 480title: qsTr("Hello World")Slider {id: controlvalue: 0.5background: Rectangle {x: control.leftPaddingy: control.topPadding …

Android Studio学习笔记

01-课程前面的话 02-Android 发展历程 03-Android 开发机器配置要求 04-Android Studio与SDK下载安装 05-创建工程与创建模拟器 在 Android Studio 中显示 “Device Manager” 有以下几种方法: 通过菜单选项 打开 Android Studio,确保已经打开了一个…

Qt天气预报系统设计界面布局第四部分右边

Qt天气预报系统 1、第四部分右边的第一部分1.1添加控件 2、第四部分右边的第二部分2.1添加控件 3、第四部分右边的第三部分3.1添加控件3.2修改控件名字 1、第四部分右边的第一部分 1.1添加控件 拖入一个widget,改名为widget04r作为第四部分的右边 往widget04r再拖…

Spring boot + Hibernate + MySQL实现用户管理示例

安装MySQL Windows 11 Mysql 安装及常用命令_windows11 mysql-CSDN博客 整体目录 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLS…

Spring Boot 整合 Keycloak

1、概览 本文将带你了解如何设置 Keycloak 服务器&#xff0c;以及如何使用 Spring Security OAuth2.0 将Spring Boot应用连接到 Keycloak 服务器。 2、Keycloak 是什么&#xff1f; Keycloak是针对现代应用和服务的开源身份和访问管理解决方案。 Keycloak 提供了诸如单点登…

【Rust自学】10.2. 泛型

喜欢的话别忘了点赞、收藏加关注哦&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 题外话&#xff1a;泛型的概念非常非常非常重要&#xff01;&#xff01;&#xff01;整个第10章全都是Rust的重难点&#xff01;&#xf…

51单片机——共阴数码管实验

数码管中有8位数字&#xff0c;从右往左分别为LED1、LED2、...、LED8&#xff0c;如下图所示 如何实现点亮单个数字&#xff0c;用下图中的ABC来实现 P2.2管脚控制A&#xff0c;P2.3管脚控制B&#xff0c;P2.4管脚控制C //定义数码管位选管脚 sbit LSAP2^2; sbit LSBP2^3; s…

SwiftUI 撸码常见错误 2 例漫谈

概述 在 SwiftUI 日常撸码过程中&#xff0c;头发尚且还算茂盛的小码农们经常会犯这样那样的错误。虽然犯这些错的原因都很简单&#xff0c;但有时想要快速准确的定位它们却并不容易。 况且这些错误还可能在模拟器和 Xcode 预览&#xff08;Preview&#xff09;表现的行为不甚…

米哈游可切换角色背景动态壁纸

米哈游可切换角色背景动态壁纸 0. 视频 B站演示: 米哈游可切换角色背景动态壁纸-wallpaper 1. 基本信息 作者: 啊是特嗷桃系列: 复刻系列 (衍生 wallpaper壁纸引擎 用)网站: 网页版在线预览 (没有搞大小适配, 建议横屏看; 这个不能切角色, 只能在wallpaper中切)仓库: GitHub…

OWASP ZAP之API 请求基础知识

ZAP API 提供对 ZAP 大部分核心功能的访问,例如主动扫描器和蜘蛛。ZAP API 在守护进程模式和桌面模式下默认启用。如果您使用 ZAP 桌面,则可以通过访问以下屏幕来配置 API: Tools -> Options -> API。 ZAP 需要 API 密钥才能通过 REST API 执行特定操作。必须在所有 …

Elasticsearch: 高级搜索

这里写目录标题 一、match_all匹配所有文档1、介绍&#xff1a; 二、精确匹配1、term单字段精确匹配查询2、terms多字段精确匹配3、range范围查询4、exists是否存在查询5、ids根据一组id查询6、prefix前缀匹配7、wildcard通配符匹配8、fuzzy支持编辑距离的模糊查询9、regexp正则…

齿轮缺陷检测数据集VOC+YOLO格式485张3类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;485 标注数量(xml文件个数)&#xff1a;485 标注数量(txt文件个数)&#xff1a;485 标注…

ArkTs之NAPI学习

1.Node-api组成架构 为了应对日常开发经的网络通信、串口访问、多媒体解码、传感器数据收集等模块&#xff0c;这些模块大多数是使用c接口实现的&#xff0c;arkts侧如果想使用这些能力&#xff0c;就需要使用node-api这样一套接口去桥接c代码。Node-api整体的架构图如下&…

MySQL(五)MySQL图形化工具-Navicat

1. MySQL图形化工具-Navicat Navicat是一套快速、可靠的数据库管理工具&#xff0c;Navicat是以直觉化的图形用户界面而建的&#xff0c;可以兼容多种数据库&#xff0c;支持多种操作系统。   Navicat for MySQL是一款强大的 MySQL 数据库管理和开发工具&#xff0c;它为专业…

【OceanBase】通过 OceanBase 的向量检索技术构建图搜图应用

文章目录 一、向量检索概述1.1 关键概念① 非结构化数据② 向量③ 向量嵌入(Embedding)④ 向量相似性检索 1.2 应用场景 二、向量检索核心功能三、图搜图架构四、操作步骤4.1 使用 Docker 部署 OceanBase 数据库4.2 测试OceanBase数据库连通性4.3 开启数据库向量检索功能4.4 克…

微信流量主挑战:用户破16!新增文档转换(新纪元3)

朋友们&#xff0c;报告好消息&#xff01;我的小程序用户数量已经涨到16个了&#xff01;没错&#xff0c;真没拉朋友圈亲戚好友来撑场子&#xff0c;全靠实力&#xff08;和一点点运气&#xff09;吸引了16位陌生小伙伴光临&#xff01;这波进步&#xff0c;连我自己都感动了…

Python:交互式物质三态知识讲解小工具

学着物理写着Python 以下是一个使用Python的Tkinter库实现的简单示例程序&#xff0c;通过图形界面展示并讲解固态、液态、气态的一些特点&#xff0c;代码中有详细的注释来帮助你理解各部分功能&#xff1a; 完整代码 import tkinter as tk from tkinter import ttk import …

ESP32-S3遇见OpenAI:OpenAI官方发布ESP32嵌入式实时RTC SDK

目录 OpenAI RTC SDK简介应用场景详解智能家居控制系统个人健康助手教育玩具 技术亮点解析低功耗设计快速响应高精度RTC安全性保障开发者指南 最近&#xff0c;OpenAI官方发布了一款针对ESP32-S3的嵌入式实时RTC&#xff08;实时时钟&#xff09;SDK&#xff0c;这标志着ESP32-…

Windows 11 关闭 VBS(基于虚拟化的安全性)

注&#xff1a;本文为 “Windows 11 关闭 VBS” 相关方法文章合辑。 重传部分 csdn 转储异常图片&#xff0c;未整理去重。 Win11 关闭 VBS 的几种方法 适用机型&#xff1a;台式 / ThinkCentre / 笔记本 / ThinkPad 分析 Virtualization-based Security (VBS) 基于虚拟化的…