使用 OpenCV 将图像中标记特定颜色区域

在计算机视觉任务中,颜色替换是一种常见的图像处理操作,广泛用于视觉增强、目标高亮、伪彩色渲染等场景。本文介绍一种简单而高效的方式,基于 OpenCV 检测图像中接近某种颜色的区域,并将其替换为反色(对比色),从而实现视觉上的突出显示。


应用背景

在工业视觉、图像分析或机器感知系统中,常常需要根据颜色分布对图像进行增强处理。例如,突出显示墨绿色区域、检测工件上涂层差异、标记某些伪装颜色区域等。

通过将图像中接近指定颜色的区域反色处理,可以快速实现对该区域的视觉增强,提升系统对颜色信息的敏感性。


关键技术概述

import cv2
import numpy as np
from pyzbar import pyzbar  # 你之前用的pyzbar,虽然这段代码不需要它也可导入无妨class FrameObject:def __init__(self):pass  # 不保存状态def do(self, frame, device):# 设定核心颜色和阈值(墨绿色,BGR)target_color = np.array([34, 70, 34])  # 墨绿色threshold = 60# 计算像素与目标色的距离diff = frame.astype(np.int16) - target_colordist = np.linalg.norm(diff, axis=2)# 生成掩码,距离小于阈值的像素mask = dist < threshold# 计算反色(纯对比色)contrast_color = 255 - target_color  # 反色# 复制一份输出图out_frame = frame.copy()# 替换颜色out_frame[mask] = contrast_colorprint(f"[{device}] 已替换接近颜色 {target_color.tolist()} 的区域为对比色 {contrast_color.tolist()}")return out_frame


示例说明

假设我们处理的是一帧图像,其中某些区域为墨绿色(如标识线、标签、背景等),该方法将这些区域自动识别,并使用其对比色(淡粉色)进行替换,从而在视觉上非常突出,适合用于:

  • 目标物视觉增强

  • 颜色伪装检测

  • 指定区域颜色反转

  • 高对比图像生成(便于 AI 模型训练)


图像处理流程回顾

  1. 输入图像帧(格式为 BGR 的 numpy.ndarray

  2. 指定目标颜色和阈值

  3. 计算所有像素到目标颜色的距离

  4. 生成布尔掩码,筛选接近颜色的像素

  5. 替换颜色为目标的反色

  6. 输出增强后的图像帧


使用建议

  • 颜色选择:可通过图像采样工具确定目标颜色 RGB 值。

  • 阈值调节:值越大,匹配范围越宽。可通过滑动条交互调节实现精细控制。

  • 扩展处理:可将对比色替换为指定颜色,或结合边缘检测进一步增强边界效果。

  • 适配平台:代码结构适用于实时图像处理系统如 PiscTrace,也可在 OpenCV 视频流中直接运行。


应用场景举例

  • 工业检测:突出标线、识别颜色偏差部件。

  • 安防监控:高亮指定颜色衣物区域。

  • 智慧交通:标记车道线或交通标识颜色。

  • 智能交互:用户界面响应颜色点击区域。


总结

本文展示了一种实用的颜色增强方案,基于 OpenCV 简洁高效地完成颜色匹配与反色替换任务。该方法不仅实现简单,而且可以灵活集成到实时图像处理系统中,用于高亮、识别与交互等多种视觉处理需求。

如需将其扩展至多种颜色或 HSV 空间处理,或集成到 PiscTrace 等可视化平台,请留言交流!

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

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

相关文章

会议分享|高超声速流动测量技术研讨会精彩探析

由中国空气动力学会测控专业委员会主办&#xff0c;中国科学技术大学工程科学学院承办的第八届三次委员会暨高超声速流动测量技术研讨会&#xff0c;5月16日在合肥盛大开幕。 会议专家报告分享了高超声速流动测量的最新研究成果、挑战与突破&#xff0c;展示了PIV高速摄像机、粒…

代码随想录算法训练营第三十八天打卡

今天是动态规划的第三天&#xff0c;昨天的不同路径与整数分解的几道题目大家理解得如何&#xff1f;如果有疑问大家还是多去想想dp数组究竟是什么含义&#xff0c;还有我的状态转移是否正确&#xff0c;初始化是否正确&#xff0c;这一点很重要&#xff0c;今天的题目依旧是跑…

【全解析】EN18031标准下的SUM安全更新机制

在网络安全问题层出不穷的今天&#xff0c;无线电设备的安全更新是保障其正常运行、抵御威胁的核心环节。EN18031标准中的SUM&#xff08;Secure Update Mechanism&#xff09;安全更新机制&#xff0c;为无线电设备的软件更新安全筑牢了规范防线。接下来&#xff0c;让我们详细…

小学数学题批量生成及检查工具

软件介绍 今天给大家介绍一款近期发现的小工具&#xff0c;它非常实用。 软件特点与出题功能 这款软件体积小巧&#xff0c;不足两兆&#xff0c;具备强大的功能&#xff0c;能够轻松实现批量出题。使用时&#xff0c;只需打开软件&#xff0c;输入最大数和最小数&#xff0c…

【LeetCode 热题 100】动态规划 系列

&#x1f4c1; 70. 爬楼梯 状态标识&#xff1a;爬到第i层楼梯时&#xff0c;有多少种方法。 状态转移方程&#xff1a;dp[i] dp[i-1] dp[i-2]&#xff0c;表示从走一步和走两步的方式。 初始化&#xff1a;dp[1] 1 , dp[2] 2。 返回值&#xff1a;dp[n]&#xff0c;即走到…

Linux系统篇——文件描述符FD

&#x1f9e0; Linux 文件描述符&#xff08;File Descriptor&#xff09;详解与学习指南 一、什么是文件描述符&#xff08;fd&#xff09; 在 Linux 中&#xff0c;一切皆文件&#xff08;everything is a file&#xff09;&#xff0c;包括普通文件、目录、套接字&#xff…

CSS- 2.1 实战之图文混排、表格、表单、学校官网一级导航栏

本系列可作为前端学习系列的笔记&#xff0c;代码的运行环境是在HBuilder中&#xff0c;小编会将代码复制下来&#xff0c;大家复制下来就可以练习了&#xff0c;方便大家学习。 HTML系列文章 已经收录在前端专栏&#xff0c;有需要的宝宝们可以点击前端专栏查看&#xff01; 系…

文件同步2

请大家思考如何使用scp命令去解决这个问题。 有两种思路&#xff1a; 第一种&#xff1a;三个文件一个一个去拷贝。缺点是操作麻烦&#xff0c;要逐一操作。 第二种&#xff1a;重新把A上的conf拷贝到B上。缺点是会重复拷贝文件1&#xff0c;2&#xff0c;3&#xff0c;4。 …

Maven使用详解:Maven的概述(二)

一、核心定义与功能 Maven是由Apache软件基金会开发的开源项目管理工具&#xff0c;专为Java项目设计&#xff0c;主要用于自动化构建、依赖管理和项目标准化。其核心功能包括&#xff1a; 依赖管理&#xff1a;通过pom.xml文件声明依赖库&#xff0c;自动从中央仓库下载并管…

大疆无人机自主飞行解决方案局限性及增强解决方案-AIBOX:特色行业无人机巡检解决方案

大疆无人机自主飞行解决方案局限性及增强解决方案-AIBOX&#xff1a;特色行业无人机巡检解决方案 大疆无人机是低空行业无人机最具性价比的产品&#xff0c;尤其是大疆机场3的推出&#xff0c;以及持续自身产品升级迭代&#xff0c;包括司空2、大疆智图以及大疆智运等专业软件和…

leetcode:58. 最后一个单词的长度(python3解法)

难度&#xff1a;简单 给你一个字符串 s&#xff0c;由若干单词组成&#xff0c;单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。 示例 1&#xff1a; 输入&#xff1a;s "Hello World"…

Ubuntu24.04 安装 5080显卡驱动以及cuda

前言 之前使用Ubuntu22.04版本一直报错,然后换了24.04版本才能正常安装 一. 配置基础环境 Linux系统进行环境开发环境配置-CSDN博客 二. 安装显卡驱动 1.安装驱动 按以下步骤来&#xff1a; sudo apt update && sudo apt upgrade -y#下载最新内核并安装 sudo add…

Github 2025-05-15 Go开源项目日报 Top10

根据Github Trendings的统计,今日(2025-05-15统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Go项目10Python项目1Ollama: 本地大型语言模型设置与运行 创建周期:248 天开发语言:Go协议类型:MIT LicenseStar数量:42421 个Fork数量:27…

操作系统-锁/内存/中断/IO

文章目录 锁自旋锁互斥锁悲观锁和乐观锁 内存管理物理/虚拟内存页表段表虚拟内存布局写时复制copy on writebrk&#xff0c;mmap页面置换算法 中断中断分类中断流程 网络I/OI/O模型服务器处理并发请求 锁 自旋锁 自旋锁是一种基于忙等待&#xff08;Busy-Waiting&#xff09;…

校园一卡通安全策略研究调研报告

目录 一、研究背景 二、问题分析 三、解决方案 1.系统功能整合 2.用户体验优化 3.安全性能提升 4.代码说明 ①ConfigController.java ②FileController.java ③SushedianfeiController.java ④UserService.java ⑤XiaoyuankachongzhiController.java ⑥其他代码 …

EWOMAIL

1、错误 Problem: problem with installed package selinux-policy-targeted-3.14.3-41.el8.noarch package fail2ban-server-1.0.2-3.el8.noarch requires (fail2ban-selinux if selinux-policy-targeted), but none of the providers can be installed - package fail2ban-…

强化学习算法实战:一个例子实现sarsa、dqn、ddqn、qac、a2c、trpo、ppo

简介 在学习强化学习算法&#xff1a;sarsa、dqn、ddqn、qac、a2c、trpo、ppo时&#xff0c;由于有大量数据公式的推导&#xff0c;觉得十分晦涩&#xff0c;且听过就忘记了。 但是当把算法应用于实战时&#xff0c;代码的实现要比数据推导要直观很多。 接下来通过不同的算法实…

《数据库原理》部分习题解析1

《数据库原理》部分习题解析1 1. 名词解释 &#xff08;1&#xff09;关系&#xff08;2&#xff09;属性&#xff08;3&#xff09;域&#xff08;4&#xff09;元组&#xff08;5&#xff09;码&#xff08;6&#xff09;分量&#xff08;7&#xff09;关系模式 &#xff0…

20250515通过以太网让VLC拉取视熙科技的机芯的rtsp视频流的步骤

20250515通过以太网让VLC拉取视熙科技的机芯的rtsp视频流的步骤 2025/5/15 20:26 缘起&#xff1a;荣品的PRO-RK3566适配视熙科技 的4800W的机芯。 1080p出图预览的时候没图了。 通过105的机芯出图确认 荣品的PRO-RK3566 的硬件正常。 然后要确认 视熙科技 的4800W的机芯是否出…

AI 赋能防艾宣传:从创意到实践,我的 IP 形象设计之旅

在数字技术飞速发展的今天&#xff0c;如何让严肃的健康传播变得更有温度、更具吸引力&#xff1f;作为一名参与防艾宣传实践的学生&#xff0c;我尝试通过 AI 工具构建专属 IP 形象&#xff0c;让防艾知识从 "被动接受" 转化为 "主动探索"。这篇文章将分享…