关于根据颜色刷选图像内容的问题

Karen110 等级 785 0 0

在CSDN本人博文《OpenCV-Python图像处理:用inRange刷选图像中指定颜色对象案例》(请点击文章底部最下方的“阅读原文”跳转CSDN阅读原文)中介绍了根据颜色刷选图像内容相关的概念及实现,介绍了通过使用inRange在HSV颜色空间中识别制定颜色的图像内容,文中概要介绍了HSV颜色空间中进行制定颜色对象识别的要点,使用的inRange函数的语法和功能,并提供了一个可以读取指定图像文件,用鼠标选择对应图像像素后显示该图像中与该像素颜色相同的内容。

文章中提到如果选择文中图像下部的文字时,结果图像效果不好。

这个问题的根源是因为在HSV空间中非彩色(包括黑、白、灰)的饱和度和明度值与一般的彩色对应的饱和度和明度值不同导致的,如果要达到好的效果,最好先转换成灰度图,再根据灰度图的饱和度和明度来处理。

背景知识:

关于HSV颜色空间的资料到处都有,可以参考《HSV颜色识别-HSV基本颜色分量范围》和《Python图像处理:OpenCV HSV和标准表示法的区别以及转换》。老猿不重复介绍,只简单概述四点:

  1. HSV颜色空间对颜色的表述非常符合人眼识别颜色的情况,表达起来更加直观,其中H表示色彩、S表示饱和度、V表示明度,分别代表了人眼对颜色的感知:“这是什么颜色?深浅如何?明暗如何?”,正因为如此,对感知颜色的物体识别时,HSV颜色空间比RGB空间具有独特优势;

  2. OpenCV的HSV表示法和标准的表示法不同,具体的请参考上面第二篇博文的介绍;

  3. 在OpenCV的HSV颜色表示法内,从《Python图像处理:OpenCV HSV和标准表示法的区别以及转换》提供的表格来看,经过实验测试的彩色(非黑、白、灰)的饱和度最小值最好是43开始、最大值255,明度最小值最好是46开始,最大255,而某个颜色范围的H最大和最小值差距基本上在10-30之间,大部分在10-14之间,这个范围我们可以用于颜色识别的处理;

  4. 从OpenCV的BGR空间转换到HSV空间,可以使用cvtColor带转换类型为COLOR_BGR2HSV。

本文转转自微信公众号老猿Python原创https://mp.weixin.qq.com/s/oqAGwllFH9leJkyUhnDQQw,如有侵权,请联系删除。

收藏
评论区

相关推荐

opencv.js人脸识别简单使用
前端使用opencv 最近了解了下opencv,看了下官方的实例和文档 opencvjs文档入口 3.3.1版本(https://docs.opencv.org/3.3.1/d5/d10/tutorial_js_root.html) 看了官方示例的网页结构 基本上所有的实例都用到了两个js 核心js:opencv.js 工具js:utils.js 官方
关于:父组件中的子组件中的子组件(孙级)添加数据后怎么样去调用父组件中的方法呢?
1、需求引入image.png 这是父组件下的子组件的子组件,一个绑定子设备的弹出窗modal,那么我们怎么样在这个组件中选中子设备后点击确定时去触发父组件的父组件的table列表数据刷新呢? image.png image.png image.png 组件的层级关系.png上述的图示便是部分代码的展示,一般的组件传值有父组件传子组件(
【Flutter实战】单选框和复选框
3.6 单选开关和复选框Material 组件库中提供了Material风格的单选开关Switch和复选框Checkbox,虽然它们都是继承自StatefulWidget,但它们本身不会保存当前选中状态,选中状态都是由父组件来管理的。当Switch或Checkbox被点击时,会触发它们的onChanged回调,我们可以在此回调中处
python刷题-圆的面积
问题描述给定圆的半径r,求圆的面积。 输入格式输入包含一个整数r,表示圆的半径。 输出格式输出一行,包含一个实数,四舍五入保留小数点后7位,表示圆的面积。说明:在本题中,输入是一个整数,但是输出是一个实数。对于实数输出的问题,请一定看清楚实数输出的要求,比如本题中要求保留小数点后7位,则你的程序必须严格的输出7位小数,输出过多或者过少的小数位数都是不
Webpack 热更新以及原理
什么是热更新模块热替换(hot module replacement 或 HMR)是 webpack 提供的最有用的功能之一。它允许在运行时更新所有类型的模块,而无需完全刷新一般的刷新我们分两种: 一种是页面刷新,不保留页面状态,就是简单粗暴,直接 window.location.reload()。 另一种是基于 WDS (Webpackde
每日一题(一)
写在前面 刷题在北联大的BUU平台,每日一题,每日更新,嘿嘿 [HCTF 2018]WarmUp刚开始看这个题真的一点思路没有,看源码、抓包一波操作过后还是选择去找了wp。。。wp说原题是有个hint.php,扫目录也可以扫出source.phphint.php里面说真正的flag文件是ffffllllaaaagggg里source.php里面是源码,代码审
【完美解决】关于cmake找不到opencv路径
我在深度学习部署到C++的时候,安装了cmake和opencv,但在导入到vs配置的时候,出现了下面的状况。 说cmake找不到opencv的路径,网上也查了很多资料,但是一个能用的都没有。最后加了路径成功了。大家可以看一下,避免踩坑。 环境变量肯定是要加的,然后在 CMakeLists.txt 文件里 加上 set (OpenCVDIR F:/open
关于根据颜色刷选图像内容的问题
在CSDN本人博文《OpenCVPython图像处理:用inRange刷选图像中指定颜色对象案例》(请点击文章底部最下方的“阅读原文”跳转CSDN阅读原文)中介绍了根据颜色刷选图像内容相关的概念及实现,介绍了通过使用inRange在HSV颜色空间中识别制定颜色的图像内容,文中概要介绍了HSV颜色空间中进行制定颜色对象识别的要点,使用的inRange函数的语法
OpenCV-Python图像转换为PyQt图像的变形及花屏无法正常显示问题研究
☞ ░ 前往老猿Python博文目录 ░一、引言在《PyQt转换显示PythonOpenCV图像实现图形化界面的视频播放》介绍了实现在OpenCV和PyQt之间转换并传递图像实现在PyQt上播放视频图像的功能。其中的关键函数如下:def cvImgtoQtImg(cvImg): 定义opencv图像转PyQt图像的函数 QtImgBuf cv2.
PyQt转换显示Python-OpenCV图像实现图形化界面的视频播放
一、引言在PythonOpenCV中显示图像时调用的是一个单独的窗口,有时我们需要将这些图像显示在PyQt的图形化界面上,这样就可以将整个图像显示与PyQt图形化界面进行整合。但OpenCV格式的图像和PyQt格式的图像并不同,这就需要进行转换。二、背景知识1. PythonOpenCV的图像是BGR格式的,而PyQt图像格式是RGB格式的,二者需要转换;
OpenCV 查找轮廓
本文将结合实例代码,介绍 OpenCV 如何查找轮廓、获取边界框。 代码: OpenCV 提供了 函数查找轮廓,需要以二值化图像作为输入、并指定些选项调用即可。我们以下图作为示例: 二值化图像代码工程 data/ 提供了小狗和红球的二值化掩膜图像:其使用预训练好的实例分割模型来生成的,脚本可见 。模型检出结果,如下:模型用的 Mask RCNN 已有预测边
JAVA回调机制(CallBack)之小红是怎样买到房子的??
JAVA回调机制CallBack 序言最近学习java,接触到了回调机制(CallBack)。初识时感觉比较混乱,而且在网上搜索到的相关的讲解,要么一言带过,要么说的比较单纯的像是给CallBack做了一个定义。当然了,我在理解了回调之后,再去看网上的各种讲解,确实没什么问题。但是,对于初学的我来说,缺了一个循序渐进的过程。此处,将我对回调机制的个人理解,按
NDK开发前奏 - 实现支付宝人脸识别功能
1. 基于 Android Studio 的 opencv 配置与使用先推荐一本书 《计算机视觉 算法与应用》,相信用过 OpenCV 的哥们都知道这是用来干啥的,这里我就不再啰嗦。只说一下他的应用领域:人机互动、物体识别、图像分割、人脸识别、动作识别、运动跟踪、机器人、运动分析、机器视觉、结构分析、汽车安全驾驶等等。这次我们主要用它来做人脸识别,注意人脸
ACM金牌选手整理的【LeetCode刷题顺序】
算法和数据结构 知识结构图首先,了解算法和数据结构有哪些知识点,在学习中形成 大局观,对学习和刷题十分有帮助。下面是我花了一天时间整理的算法和数据结构的知识结构,大家可以看看。<img src"https://tva1.sinaimg.cn/large/008i3skNly1gsbvbwd5u1j30ys0u0tl6.jpg" alt"image202107
RecyclerView更全解析之 - 打造通用的下拉刷新上拉加载
1.概述 这期我们在上一期的的基础上再去增加功能,我相信我们在真正的实践开发过程中肯定少不了下拉刷新和上拉加载。   我们需要思考一个问题上拉刷新下拉加载风格各式各样,淘宝和京东的列表刷新样式就肯定不一样,我们怎么样做到版本迭代的时候可以快速的更改样式。有时还需要显示正在加载数据或者无数据,比如筛选的时候有可能会出现没有数据的情况会显示无数据页面,怎么快