毕业设计-基于机器视觉的颜色目标识别

news2025/7/13 2:40:34

目录

前言

课题背景和意义

实现技术思路

 什么是彩色空间

 怎么利用彩色空间

颜色识别的过程

 读取图片进行hsv色域转换

对图片特定颜色识别

本地摄像头对视频流进行颜色识别

实现效果图样例


前言


    📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。

🚀对毕设有任何疑问都可以问学长哦!

本次分享的课题是

🎯基于机器视觉的颜色目标识别

课题背景和意义

传统的机器视觉系统大部分是基于灰度图像进行图像处理,而如果检测颜色则需要选择彩色相机,因为彩色相机可以还原物体的真实色彩。

颜色是通过眼、脑和我们的生活经验所产生的一种对光的视觉效应。我们肉眼所能见到的光线,是由波长范围很窄的电磁波产生;颜色就是人对光的一种感觉,由大脑产生的一种感觉。例如:绿叶反射波长为500~570nm的绿光。

例如初中物理中所学的光的三原色由红、绿、蓝组成,这就是RGB颜色空间,除此之外还有HSV、CMY颜色空间。

实现技术思路

 什么是彩色空间

RGB三原色组成了五彩缤纷的世界,通过不同颜色之间的比例搭配得到赤橙黄绿青蓝紫,我们的相机、电视机就是利用颜色空间的模型,因此RGB主要面向硬件模型。色彩强度用0~255表示,总共256的灰度值,最大可呈现的色彩种类为256*256*256=16777216种。

CMY颜色空间它也是一种面向硬件设备(彩色打印机,复印机)的颜色模型,CMY代表青色,深红色和黄色(颜料原色)的组合。这三种颜色是RGB的二次色,用的是另一种方式定义。在机器视觉中涉及不到,这儿不做深入分析。

 HSV颜色空间是根据颜色的直观特性,由A. R. Smith在1978年创建的一种颜色空间, 也称六角锥体模型(Hexcone Model)。这个颜色模型十分重要,该模型十分接近人对颜色的感知。

H(色调):用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算。红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,品红为300°。

S(饱和度):取值范围为0~255。

V(亮度):取值范围为0 (黑色)~255(白色)。

 怎么利用彩色空间

(1) 输入图像彩色图像

(2) 将彩色图像转化成所需的空间(按R分量法、最大值法、插值法等)

(3) 在所需的空间进行图像处理

颜色识别的过程

 读取图片进行hsv色域转换

frame=cv2.imread('lena.tiff')
src=cv2.imshow('photo',frame)
img_HSV=cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)

src=cv2.imshow('HSV',img_HSV)
cv2.waitKey()

对图片特定颜色识别

      for i in contours:  # 遍历所有的轮廓
            x, y, w, h = cv2.boundingRect(i)  # 将轮廓分解为识别对象的左上角坐标和宽、高
            # 在图像上画上矩形(图片、左上角坐标、右下角坐标、颜色、线条宽度)
            cv2.rectangle(Img, (x, y), (x + w, y + h), (0, 255,), 3)
            # 给识别对象写上标号
            font = cv2.FONT_HERSHEY_SIMPLEX
            cv2.putText(Img, str(p), (x - 10, y + 10), font, 1, (0, 0, 255), 2)  # 加减10是调整字符位置
            p += 1

本地摄像头对视频流进行颜色识别

 # 变成二值图像放在binary中
        ret, binary = cv2.threshold(dilation, 127, 255, cv2.THRESH_BINARY)
        binary, contours, hierarchy = cv2.findContours(binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
        p = 0
        for i in contours:  # 遍历所有的轮廓
            x, y, w, h = cv2.boundingRect(i)  # 将轮廓分解为识别对象的左上角坐标和宽、高
            # 在图像上画上矩形(图片、左上角坐标、右下角坐标、颜色、线条宽度)
            cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255,), 3)
    cv2.imshow('RGB', frame)
    cv2.imshow('HSV', HSV)
    cv2.imshow('MASK', mask)
    cv2.imshow('target', target)
    key = cv2.waitKey(3)

实现效果图样例

我是海浪学长,创作不易,欢迎点赞、关注、收藏、留言。

毕设帮助,疑难解答,欢迎打扰!

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

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

相关文章

Python基础-面向对象编程之特性(property)

Python面向对象编程之特性(property) 一、统一访问原则 通常,我们访问实例或类的属性时,将返回所存储的相关值。而特性(property)是一种特殊的属性,访问它时会计算它的值。 请看下面的例子: import mat…

基于android的个性闹铃的设计与开发(闹铃,日历,计时器,备忘录)

目 录 摘 要 2 Abstract 2 1 选题的背景和意义 5 1.1 选题的背景 5 1.2 国内外研究现状 5 1.2.1 国内外手机系统现状 5 1.2.2 国内外手机应用现状 7 1.2.3 发展趋势 7 2 需求分析 9 2.1 系统需求 9 2.2 需求分析 9 2.3 约束与限制 10 3 总体设计 11 3.1 系统结构图 11 3.2 总体…

【数论】约数

文章目录一、试除法求n的所有约数二、约数个数三、约数之和四、最大公约数&#xff08;欧几里得算法/辗转相除法&#xff09;一、试除法求n的所有约数 vector<int> getDivisors(int n) {vector<int> ans;for (int i 2; i < n / i; i) {if (n % i 0) {ans.pus…

深度学习Week8-咖啡豆识别(Pytorch)

目录 一、前期准备 1.设置GPU 2. 导入数据 3. 划分数据集 二、手动搭建VGG-16模型 1. 搭建模型​编辑 2. 查看模型详情 三、 训练模型 1. 编写训练函数 2. 编写测试函数 4. 正式训练 四、 结果可视化 1. Loss与Accuracy图 2. 指定图片进行预测 3. 模型评估 *五、优…

[附源码]java毕业设计中达小区物业管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

学生家乡网页设计作品静态HTML网页模板源码 广西旅游景点网页设计 大学生家乡主题网站制作 简单家乡介绍网页设计成品

家乡旅游景点网页作业制作 网页代码运用了DIV盒子的使用方法&#xff0c;如盒子的嵌套、浮动、margin、border、background等属性的使用&#xff0c;外部大盒子设定居中&#xff0c;内部左中右布局&#xff0c;下方横向浮动排列&#xff0c;大学学习的前端知识点和布局方式都有…

Packet Tracer - 配置 IPv4 和 IPv6 接口

地址分配表 设备 接口 IPv4 地址 子网掩码 默认网关 IPv6 地址/前缀 R1 G0/0 172.16.20.1 255.255.255.128 不适用 G0/1 172.16.20.129 255.255.255.128 不适用 S0/0/0 209.165.200.225 255.255.255.252 不适用 PC1 NIC 172.16.20.10 255.255.255.128 1…

微服务架构的环境搭建及简单测试

目录 一、系统架构的演变过程 1.0 前言 1.1 单体应用架构 1.2 垂直应用架构 1.3 分布式架构 1.4 SOA架构 1.5 微服务架构 二、微服务架构搭建 2.1 微服务架构简介 2.2 微服务案例准备 2.3 创建父工程、基础模块 2.4 创建微服务 一、系统架构的演变过程 1.0 前言 随着互联网的…

【Queue】- 从源码分析PriorityQueue及其常用方法

文章目录PriorityQueue基础知识概述PriorityQueue内部结构PriorityQueue扩容操作PriorityQueue队列的构造方法PriorityQueue队列的常用方法public boolean offer(E e)public E peek()public boolean remove(Object o)public boolean contains(Object o)public Object[] toArray…

【SU-03T离线语音模块】:学习配置使用

前言 时不可以苟遇&#xff0c;道不可以虚行。 一、介绍 1、什么是语音识别模块 语音识别模块是在一种基于嵌入式的语音识别技术的模块&#xff0c;主要包括语音识别芯片和一些其他的附属电路&#xff0c;能够方便的与主控芯片进行通讯&#xff0c;开发者可以方便的将该模块嵌…

Node.js 入门教程 3 如何安装 Node.js

Node.js 入门教程 Node.js官方入门教程 Node.js中文网 本文仅用于学习记录&#xff0c;不存在任何商业用途&#xff0c;如侵删 文章目录Node.js 入门教程3 如何安装 Node.js3 如何安装 Node.js Node.js 可以通过多种方式安装。 所有主流平台的官方软件包都可以在 http://node…

终于见识到了微服务的天花板:阿里内部SpringCloud全线手册,太强了

后台都是在问微服务架构的面试题怎么答&#xff0c;想聊聊微服务架构了。微服务架构一跃成为 IT 领域炙手可热的话题也就这两年的事&#xff0c;大量一线互联网公司因为庞大的业务体量和业务需求&#xff0c;纷纷投入了微服务架构的建设中&#xff0c;像阿里巴巴、百度、美团等…

226. 翻转二叉树

文章目录1.题目2.示例3.答案①递归②迭代1.题目 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 2.示例 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9,6,3,1]输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xf…

智慧应急解决方案-最新全套文件

智慧应急解决方案-最新全套文件一、建设背景二、建设思路应急管理信息化发展“四纵四横”总体架构1、两网络2、四体系3、两机制三、建设方案四、获取 - 智慧应急全套最新解决方案合集一、建设背景 建立应急大数据管理体系是应急管理信息化建设中的重要环节&#xff0c;决定了应…

将数组沿指定轴划分为子数组numpy.split()

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 将数组沿指定轴划分为子数组 numpy.split() [太阳]选择题 以下python代码输出错误的一项是? import numpy as np xnp.array([1,2,3,4,5,6,7,8,9,10,11,12]) print(【显示】x&#x…

数据库安装记录——Mysql8.0.23 msi 保姆级安装教程

今天遇到现场服务器安装数据库&#xff0c;特意记录安装过程。 本篇记录的服务器系统为&#xff1a;Windows Server 2012 R2 Standard 数据库版本为&#xff1a;Mysql8.0.23 msi 1、官网下载相应版本 2、安装过程 开端不顺&#xff0c;开始就出弹窗&#xff1a; 先插入一…

下载神器-IDM使用教程及下载

软件介绍&#xff1a; IDM是“Internet Download Manager”的简称&#xff0c;意思是“互联网下载管理器”&#xff0c;既是一类软件的统称&#xff0c;也专指一个非常知名的互联网下载器&#xff0c;这个软件的名字就叫IDM&#xff0c;被誉为地表最强下载器&#xff0c;屌丝救…

Flutter 中使用 extension 使项目更具可读性和效率 01

Flutter 中使用 extension 使项目更具可读性和效率 01 原文 https://medium.com/bedirhanssaglam/make-your-flutter-projects-more-readable-and-effective-with-extensions-b7dffd32e2f4 前言 代码的可读性和实用性在《 Flutter 》中非常重要。今天我们将编写一些 extension …

代码行覆盖率学习

【强力推荐】jacoco代码测试覆盖率实战教学全集&#xff0c;7天从入门到精通【理论实战 赶紧拿走】_哔哩哔哩_bilibili on-the-fly: 测试的时候代码是动态的, 需要测试就帮你插桩, 不测就不帮你插桩 offline: 先把被测代码拿到一次性直接插桩, 一运行桩就已经插好了, 直接生成…

如何把一个视频分割成不同时长的多个小视频

大家平时找素材是不是有点困难&#xff0c;如何把一个视频一个分割成多个不同时长的小视频呢&#xff0c;分割视频时能不能按我们需要来分割&#xff0c;今天小编带大伙来了解决下分割视频操作方法和步骤。 先来看下原来视频&#xff0c;原视频时长是比较长的 接下来我们准备一…