OpenCV提取图片颜色并输出

OpenCv对于图片的RGB三色通道的提取与合并 当涉及到图像处理和计算机视觉时,颜色通道(RGB通道)的提取是一个重要的步骤。而OpenCV是一个强大的计算机视觉库,它提供了许多功能,包括图像处理。 阅读详情

方法

使用std空间里面的set统计单一出现的颜色,set有去重功能,不需要另外判断。set在内部使用红黑树实现,需要对其元素进行排序,然而Vec3b默认并不支持¥<<<运算符进行比较,所以需要手动实现一个。

结果验证

存储一个只有蓝色的图像存储一个只有蓝色的图像
最后输出的结果,(0, 0, 255) 说明方法有效
在这里插入图片描述

Talk is cheap, show me the code

#include<iostream>
#include<vector>
#include<opencv2/opencv.hpp>
#include<set>
using namespace std;
using namespace cv;

// 定义一个比较Vec3b类型的结构体
struct Vec3bCompare {
    bool operator() (const Vec3b& a, const Vec3b& b) const {
        return (a[2] < b[2]) ||
            (a[2] == b[2] && a[1] < b[1]) ||
            (a[2] == b[2] && a[1] == b[1] && a[0] < b[0]);
    }
};

int main() {
    Mat src = imread("./data/blue.png");
    if (src.empty()) {
        cout << "Image not found!" << endl;
        return -1;
    }

    int height = src.rows, width = src.cols;
    // 使用自定义的比较结构体创建set
    set<Vec3b, Vec3bCompare> colors;

    for (int i = 0; i < height; i++) {
        for (int j = 0; j < width; j++) {
            Vec3b pixel = src.at<Vec3b>(i, j);
            colors.insert(pixel);
        }
    }

    // 打印颜色需要自定义输出方式
    //Vec3b原本存储颜色顺序是bgr,这里按照rgb顺序输出
    for (const Vec3b& color : colors) {
        cout << int(color[2]) << ", " << int(color[1]) << ", " << int(color[0]) << endl;
    }

    waitKey(0);
    return 0;
}

opencv 实现特定颜色线条提取与定位 本篇文章通过调用opencv里的函数简单的实现了对图像里特等颜色提取与定位,以此为基础,我们可以实现对特定颜色物体的前景分割与定位,或者特定颜色线条的提取与定位 主要步骤: 将RGB图像转化为HSV,H表示色调(度数表示0-180),S表示饱和度(取值0-255),V表示亮度(取值0-255),不同的颜色有着不同的取值范围,一般给出如下: 设定待提取颜色的HSV范围值,然后调用inRange函... 阅读详情

相关推荐

opencv+python提取图片中某一颜色的物体

由于项目需要图像处理方面知识,因此最近在学习opencv,本文的程序具有不错的参考价值,因此记录之。

weixin_45371989的博客 4685

颜色、形状和纹理:使用 OpenCV 进行特征提取

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达如何从图像中提取特征?第一次听说“特征提取”一词是在 YouTube 上的机器学习视频教程中,它清楚地解释了我们如何在大型数据集中提取特征。很简单,数据集的列就是特征。然而,当我遇到计算机视觉主题时,当听说我们将从图像中提取特征时,吃了一惊。是否开始浏览图像的每一列并取出每个像素?一段时间后,明白了特征提取在计算机视觉中的含义。...

小白学视觉 4007

OpenCV之颜色空间转换、掩膜(mask)、颜色提取——python实现

一、颜色空间转换 OpenCV有150中颜色空间转换方法,可以使用以下方式查看所有颜色空间转换方法 str.startswith()函数:用于判断一个字符串是否为某个字符串的开头。 dir()函数:带参数时,返回参数的属性、方法列表。 import cv2 flags = [i for i in dir(cv2) if i.startswith('COLOR_')] print(flags...

鬼刀 1万+

使用OpenCV做个简单的颜色提取器

学更好的别人,做更好的自己。——《微卡智享》本文长度为1035字,预计阅读4分钟前言做UI界面时,常常会遇到配色的问题,有专业美工还好,没有的话,你想要什么颜色,需要自己进行提取,如果没有PS,那我们就用OpenCV做个简单的颜色提取功能。实现效果实现OpenCV获取颜色提取需要什么?A从上面的GIF动图中可以看出来,每点击图像中的位置直接显示出当前的RGB色和转换为16进制的字符。实现这个方式最...

Vaccae的博客 2838

opencv中对图片的二值化操作并提取特定颜色区域

一、最近因为所在的实习公司要求用opencv视觉库来写一个对图片识别并提取指定区域的程序。看了很多资料,只学会了皮毛,下面附上简单的代码。运行程序之前需要安装opencv库,官网地址为:https://opencv.org/。直接下载安装包到本地,解压即可。本人的opencv版本为24.10 。集成环境是visual studio 2013。 1 #include<opencv...

Aiden的博客 1505

opencv颜色识别python_python opencv检测并提取目标颜色

这次给大家带来python opencv检测并提取目标颜色,python opencv检测并提取目标颜色的注意事项有哪些,下面就是实战案例,一起来看一下。实例如下所示:# -*- coding:utf-8 -*-author = 'kingking'version = '1.0'date = '14/07/2017'import cv2import numpy as npimport timeif...

weixin_39628271的博客 1755

opencv -- 颜色和轮廓 的 提取&筛选

注:本文采用的编程语言是python。 如果你使用的是C++,有些代码可能需要自行变更! 前言   初学opencv的阶段,难免是从枯燥地啃文档和记函数开始。逐一而草率地“过”一遍函数用法,对于初学者而言,其实很难起到学习的进步。只有在具体的实例中,才能更好地理解函数用法和搭配 的 妙用。   笔者在视觉库cvzone和halcon的启发下,总结了些opencv实现的颜色和轮廓的提取&筛选方法,能够方便地应用在不同的项目之上。   如果读友是小白,在这里也推荐个B站上的油管搬运教程:opencv超实

m0_50616665的博客 1万+

用FPGA在HDMI上显示自定义字符:从COE文件到OSD叠加的保姆级教程

本文详细介绍了如何在FPGA上实现HDMI视频流的OSD字符叠加技术,从COE文件生成到动态区域控制的完整流程。通过Verilog代码示例和实战技巧,帮助开发者掌握字符ROM设计、像素坐标追踪和动态混合等核心技术,适用于视频监控、系统状态显示等应用场景。

weixin_28720767的博客 231

使用OpenCV进行特征(颜色、形状)提取

图像处理 图像处理所做的只是从图像中提取有用的信息,从而减少数据量,但保留描述图像特征的像素。 下面从图像中提取颜色、形状和纹理特征的方法开始 1. 颜色    每次处理图像项目时,图像的色彩空间都会成为最先探索的地方,而我们最常用的就是RGB色彩空间。那么接下来使用OpenCV,我们可以将图像的颜色空间转换为HSV、LAB、灰度、YCrCb、CMYK等。 a. HSV(色相饱和度值) 色调H:描述主波长,是指定颜色的通道 饱和度S:描述色调/颜色的纯度/色调 值V:描述颜色的强度 import cv

weixin_45074568的博客 5726

深入AOSP构建系统:从BUILD_FINGERPRINT的生成逻辑,看如何定制你的Android设备标识

本文深入解析AOSP构建系统中的设备指纹生成机制,详细介绍了BUILD_FINGERPRINT的生成逻辑及其在Android设备中的关键作用。通过分析多个指纹属性的区别与联系,以及如何定制设备标识,帮助开发者更好地理解和掌握Android系统构建过程。

weixin_27017211的博客 222

什么是DHCP Snooping?如何配置DHCP Snooping?

功能描述防护类型防御伪造 DHCP 服务器、避免地址冲突、增强网络安全性使用场景企业园区网、校园网、大型局域网配合机制IP Source Guard、DAI、防止 ARP 欺骗部署难度⭐⭐(简单)“DHCP Snooping,是内网 DHCP 安全防护的第一道门神。” 🛡️。

网络技术联盟站 1267

python3抓取图片视频_Python opencv提取视频中的图片

#-*- coding: utf-8 -*-importosimport cv2 ##加载OpenCV模块def video2frames(pathIn='',pathOut='',only_output_video_info=False,extract_time_points=None,initial_extract_time=0,end_extract_time=None,extract...

weixin_30394019的博客 330

YOLOv12改进策略【注意力机制篇】| 2024 PPA 并行补丁感知注意模块,提高小目标关注度(二次改进A2C2f)

本文记录的是利用改进检测精度,详细说明了优化原因,注意事项等。原论文在红外小目标检测任务中,小目标在多次下采样操作中容易丢失关键信息。通过替代编码器和解码器基本组件中的传统卷积操作,更好地保留小目标的重要信息。HCF-Net: Hierarchical Context Fusion Network for Infrared Small Object Detection采用多分支特征提取策略,通过不同分支提取不同尺度和层次的特征。利用局部、全局和串行卷积分支,对输入特征张量进行处理。通过控制 patch si

Limiiiing的博客 1888

opencv-python的简单应用

通过选取道图片的角点,再通过得到的点来进行变换得到变换矩阵,最后将图片按照变换矩阵进行变换,得到矫正后的图像。主要就是先将水印提取出来,然后将图片中需要添加水印的部分选出来,将其融合,最后放回原图中,得到添加水印的图片。先按照颜色提取出掩码,然后绘制轮廓。

qq_62780060的博客 430

逆强化学习:从专家示范中学习策略

逆强化学习(Inverse Reinforcement Learning,简称IRL)是强化学习(Reinforcement Learning,简称RL)的一个子领域,它的目标是从专家的行为中学习策略。在传统的强化学习中,智能体通过与环境交互,根据奖励信号来学习一个策略。而在逆强化学习中,我们没有直接的奖励信号,而是通过观察专家的行为来推断出奖励函数,从而学习到一个与专家类似的策略。逆强化学习作为强化学习的一个重要子领域,在许多实际应用场景中都取得了显著的成功。

AI天才研究院 1453

以 DeleteRestrictions 与 inlineDelete 为核心的 Fiori Elements 表格删除机制全解

SAP Fiori elements 中删除操作的设计与实现涉及多维度考量。框架默认依据 OData 元数据判断删除能力,通过 DeleteRestrictions 注解实现行级条件控制(deletable-path)。表格支持两种删除模式:工具栏集中删除与响应式表格行内删除,但二者不建议混用。关键约束包括:行内删除仅适用于 Responsive Table,且与多选功能互斥。配置需遵循三层架构:后端能力注解、前端表格形态和运行时交互。设计上强调禁用优于隐藏的可用性原则,并需保持列表页与对象页的删除体验一致

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 153

在java中使用openCV遍历红色,像素遍历

分享给java的同学工作需要对图片中的印章进行提取,这就用到了opencv的像素遍历不用多废话,直接/** * 遍历图片中全部红色部分 * @author Administrator * */public class Test3 { public static void m...

GG_Eric的博客 1452

什么是 SAP S/4HANA 的 Brown Field 迁移和 Green Field 迁移

Brown Field实施涉及升级现有的 SAP 环境并继续使用一些遗留组件。它类似于传统升级,因为它涉及软件更新、一些数据转换和一些业务流程的调整。它仍然具有破坏性,但比Green Field实施要少得多。如果你是风险厌恶者,倾向于逐步使用 S/4HANA 的功能,或担心 S/4HANA Green Field方法的成本,那么你可能更喜欢这种方法。混合方法结合了Brown Field和Green Field迁移的一些元素。它从公司的 SAP 系统的副本开始,包括配置设置和定制。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1324

c语言c字符动画源代码,C++&&Opencv实现控制台字符动画的方法

原理概述首先利用opencv获取到图片中特定像素点的颜色根据颜色所处的范围选择不同的字符再在控制台的特定位置打印即可重点就是获取像素点的颜色获取图像中某像素点的颜色图片载入变量opencv中可使用Mat类型来储存图片Mat img;img = imread("图片路径");将图片转化为灰度图为什么要把图片转为灰度图呢?主要是为了使图片颜色单一减少后面条件判断的工作量不过也可以不去做这一步的处理Ma...

weixin_33504929的博客 781

黏菌优化算法(SMA)详解:从生物智能到优化引擎

黏菌优化算法(SMA)是一种新型生物启发式优化算法,模拟多头绒泡菌的智能觅食行为。该算法包含接近食物、包围食物和抓取食物三个阶段,通过数学模型将生物行为转化为优化过程。SMA采用权重自适应机制和参数振荡模型实现探索与开发的平衡,具有参数简单、收敛性好等优势。算法可通过MATLAB/Python实现,并应用于函数优化、工程设计和神经网络训练等领域。研究表明SMA在求解复杂优化问题时表现优异,未来可通过混沌增强、混合策略等方式进一步提升性能。

qq_42212808的博客 661

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Opencv SURF算法进行人脸匹配

Opencv SURF算法进行人脸匹配

qq_40689152的博客 418

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

【Python+OpenCV】识别颜色方块并提取轮廓

转载自:【Python+OpenCV】识别颜色方块并提取轮廓_See_Star的博客-优快云博客 【Python+OpenCV】识别颜色方块并提取轮廓 望天边星宿 2019-11-13 11:50:53 15498 正在上传…重新上传取消​ 收藏 267 分类专栏: Python OpenCV 文章标签: OpenCV Python 图像识别 版权 ​Python 同时被 2 个专栏收录 61 篇文章 2 订阅 订阅专栏 ​OpenCV 7 篇文章 1 订阅 订阅专栏 ...

自主无人机 PX4 ROS SLAM 路径规划 MVS等技术分享 7488

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

OpenCV颜色提取——获取图片上某一区域的颜色平均HSV值——颜色识别

彩色模型 数字图像处理中常用的采用模型是RGB(红,绿,蓝)模型和HSV(色调,饱和度,亮度),RGB广泛应用于彩色监视器和彩色视频摄像机,我们平时的图片一般都是RGB模型。而HSV模型更符合人描述和解释颜色的方式,HSV的彩色描述对人来说是自然且非常直观的。 HSV模型 HSV模型中颜色的参数分别是:色调(H:hue),饱和度(S:saturation),亮度(V:value)。由A. R...

c1learning的博客 4万+

opencv学习(四)提取图片中的指定颜色

我们的目标是提取下面这张图片的红色区块 最终结果如下: 源代码如下: import cv2 import numpy as np img = cv2.imread("E:\\demo\\python\\venv\\Include\\image02.jpg") #转到HSV hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) print(hsv) #设置阈...

神兽乌鸦 1万+

python+opencv 获取图片中指定颜色的部分

获取图片中指定颜色的部分 将图片的色彩空间转为HSV色彩空间 通过比照HSV的参考表,进行获取要提取颜色的相应范围 使用inRange函数进行提取 使用imShow显示 import cv2 import numpy as np src = cv2.imread("D:\\myCode\\picture\\cards.png") cv2.namedWindow("input", cv2.WIN...

qq_40456669的博客 3万+
上一篇: 并查集练习-帅到没朋友
下一篇: 在Windows系统上安装NLopt并配合VS使用
Ayu阿予
博客等级 码龄5年 456粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ayu阿予

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值