opencv检测某个区域rgb变化_使用OpenCV和C ++检测RGB颜色间隔
我想使用OpenCV和C ++在视频或图像中检测红色物体。 有什么算法可以做到这一点?
我想对颜色等级之间的关系进行比较。 实际上,当亮度变化时,该比率保持恒定。 因此我想确定感兴趣区域的颜色可接受值的间隔。
对于某些情况,我查看红色的R(x,y)和G(x,y)/ R(x,y)和B(x,y)/ R(x,y)。
然后,我将找到可接受值的范围???:首先了解一下,
它将释放调色板图像中每个报告的最大值和最小值
红色
我想找到这样的东西:
if minR<=R(x,y)<=maxR and minG<=G(x,y)<=maxG minB<=B(x,y)<=maxB so
couleur(x,y)=blanc else couleur(x,y)=NOIR
请在问题中添加一些其他详细信息,例如图片等。 很难理解。
请我可以和某人谈谈Skyp的更多详细信息???
如果您想雇用某人,请在Twitter上找到我。 :)
我建议您回滚您的编辑,因为您正在询问一个新问题。 因此,在这里接受答案,然后问另一个问题。
使用cv :: inRange()对图像进行预处理,并使用必要的颜色范围来隔离红色。您可能需要转换为类似HSV或YCbCr的颜色空间以获得更稳定的颜色边界,因为色度和亮度可以更好地分离。您可以为此使用cvtColor()。在这里查看我的答案,以获取将inRange()与createTrackbar()结合使用的好示例。
因此,基本模板将是:
Mat redColorOnly;
inRange(src, Scalar(lowBlue, lowGreen, lowRed), Scalar(highBlue, highGreen, highRed), redColorOnly);
detectSquares(redColorOnly);
编辑:只需使用轨迹栏来确定您要隔离的颜色范围,然后使用发现该工作的颜色间隔即可。您不必经常使用轨迹栏。
范例:
因此,对于这里的模板的完整示例,
我在GIMP中创建了一个简单(理想的)图像,如下所示:
然后,我创建了此程序来过滤除红色方块以外的所有内容:
#include
#include
#include
#include
using namespace std;
using namespace cv;
Mat redFilter(const Mat& src)
{
assert(src.type() == CV_8UC3);
Mat redOnly;
inRange(src, Scalar(0, 0, 0), Scalar(0, 0, 255), redOnly);
return redOnly;
}
int main(int argc, char** argv)
{
Mat input = imread("colored_squares.png");
imshow("input", input);
waitKey();
Mat redOnly = redFilter(input);
imshow("redOnly", redOnly);
waitKey();
// detect squares after filtering...
return 0;
}
注意:您将无法在实际图像中使用这些完全相同的过滤间隔;我只是建议您使用轨迹栏调整间隔以了解可接受的范围。
输出看起来像这样:
瞧!仅剩下红色方块:)
请享用 :)
谢谢,但是我将在实时处理中使用此程序,所以我不能使用轨迹栏,因为这样的想法是检测多边形中的红色数字,您知道我可以做什么!
为什么不升级到OpenCV 2.3.1?那这个例子对你不起作用吗? inRange在OpenCV 2.1中可用,Mat对象也可用...
只需将includes切换为#include,然后删除行。
@mevatron将此添加到OpenCV常见问题解答中。 ;)
@karlphillip完成:)遇到一些相关问题,是吗? :)
@mevatron我认为我们应该将所有有趣的答案添加到FAQ中。特别是那些共享源代码的代码。我对标签上的编辑进行了投票,希望其他人也同意我的观点。更新标签信息需要2票。
@karlphillip好主意!今天晚上我下班回家时,我会不适。
您是否可以在此处添加一些代码来减去这两个图像,使得最后只有红色方块可见,其他所有元素都透明?
在这种情况下,请尝试找出所需正方形的任何独特特征,以区别于其他正方形。
例如
1)正方形的颜色:-如果颜色不同于所有其他正方形,则可以检查每个正方形的内部,然后选择具有所需颜色的正方形,如mevatron所述。
2)正方形的大小:-如果知道正方形的大小,则比较每个正方形的大小并选择最佳。
非常感谢,但我需要在检测到正方形后再检测颜色,所以我使用样本opencv square.c来检测所有正方形,但是现在我需要在一个正方形中检测到红色beetwen其他一些我可以做什么?
我不确定我是否理解您的问题。最好在问题中添加您的图片,以使问题更清晰。无论如何,一旦您知道正方形的位置,请获取每个像素并检查其是否落在红色区域中。
请的想法是我如何才能定位图像中所有正方形之间的正方形,因为在此之后,我将进行识别,这就是为什么我只需要提取所需的正方形的原因
arkiaz我是网站的新用户,所以我不能添加图片我可以用skyp" sossos1926"给你一些细节吗?谢谢
请通过arkiazm@gmail.com与我联系。我没有Skype。
您可以使用内置功能将图像从RGB值转换为HSV类型。找到后,每种颜色都有一些HSV值范围。因此,您可以找到该点并将其作为阈值并将这些点与其他点区分开。
您能提供一个与OP想要的东西有关的示例吗?它确实有帮助...
opencv检测某个区域rgb变化_使用OpenCV和C ++检测RGB颜色间隔相关推荐
- opencv和python是什么关系_使用OpenCV和Python检测眼睛
今天,我们将学习如何借助称为霍夫变换的技术来检测图像中的直线和圆. 什么是霍夫空间? 在开始对图像应用霍夫变换之前,我们需要了解霍夫空间是什么,我们将通过示例的方式来学习. 参数空间 当我们处理图像时 ...
- ubuntu c++检测usb口事件变化_从MacBook支持USB-C口充电看电脑标配充电器发展史
USB-C是目前普及度非常高的接口类型,从最开始的手机.到现在的笔记本电脑,甚至蓝牙耳机等很多小型用电设备都已经配备了USB-C充电接口. 苹果是很喜欢USB-C接口的,它不仅可以做到盲插,而且支持的 ...
- ubuntu c++检测usb口事件变化_拆解报告:美式双USBA口充电插座
----- 充电头网拆解报告 第1441篇 ----- 最近充电头网拿到了一款美式插座,这款产品相比常规墙插插座,除了配有两个双脚AC插口外,还有两个USB-A接口,支持直接插上数据线即可为两台设备进 ...
- ubuntu c++检测usb口事件变化_炼就“火眼金睛”,FETA40i-C核心板“牵手”光时域反射仪...
在光缆工程完工后,都需要进行线路的最后测试,来 记录光缆的长度.径距损耗及接头损耗.各接头 位置信息 等 . 光时域反射仪(英文简称: OTDR ) 是测试中必不可少的工具, 通过对测量曲线的分析,了 ...
- vue watch 监听不到变化_关于vue中watch检测到不到对象属性的变化的解决方法
前言 在vue开发的过程中发现一个问题:改变vue.$data中对象的属性,watch是观测不到变化,但其实对象的属性是有变化的.这--,有点难以置信! 正文 update age with 25 e ...
- android 如何快速检测到画面变化_电瓶修复—如何快速检测电池的好坏2
本公众号会不断更新详细的电瓶修复技术及分享开店经验 (连载2)2.全新电池安装上去后,没几天或者一个多月客户反映跑的不远. 这种基本可以排除是电池故障引起的.尤其如果你安装的天能.超威之类的大厂电池. ...
- 使用opencv和python进行智能图像处理_使用OpenCV在Python中进行图像处理
编辑推荐: 本文将先讨论一些图像处理,然后再继续介绍可以方便使用图像处理的不同应用程序/场景,希望对您的学习有所帮助. 本文来自于tecdat ,由火龙果软件Alice编辑.推荐. 介绍 在本教程中, ...
- opencv python 多帧降噪算法_防抖技术 | OpenCV实现视频稳流
在这篇文章中,我们将学习如何使用OpenCV库中的点特征匹配技术来实现一个简单的视频稳定器.我们将讨论算法并且会分享代码(python和C++版),以使用这种方法在OpenCV中设计一个简单的稳定器. ...
- opencv python 多帧降噪算法_实战 | OpenCV实现视频防抖
点击上方"计算机视觉life",选择"星标" 快速获得最新干货 本文转自OpenCV学堂 这篇文章分享了一个视频防抖的策略,这个方法同样可以应用到其他领域,比如 ...
最新文章
- 要想成功 需要了解的东西
- 干货 | XGBoost在携程搜索排序中的应用
- numpy.random.choice用法
- Could not find method google() for arguments [] on repository container.
- python基础一入门必备知识-Python快速入门指南基础知识详细说明
- Java对象的实例化
- GPIO做输出还能作外部中断输入吗?
- yunyang1994 tensorflow_yolov3训练报错:IndexError: index 68 is out of bounds for axis 1 with size 68 数据清洗
- Net设计模式实例之单例模式( Singleton Pattern)
- [日志]开车要掌握的十六大绝技
- Java Web之会话管理二:Session
- [SOJ] 无路可逃?
- BGP联邦原理及配置实例
- 关于值传递和指针传递
- 酒店管理系统需求分析
- win10 软路由_「保姆级」万晓博带你用软路由搭建家庭网络中心第1节-准备工作...
- “打酱油”的意思:不关我的事,我只…
- Mac M1 上 丝滑跑 Docker
- 元宇宙掀起新浪潮,觅伊打造沉浸式社交场景
- Python math库函数
热门文章
- 初来咋到的,多多关照哈~
- 两种方法教你在postman设置请求里带动态token
- [Android]我的第一个手机应用
- 从给定的大图中切出指定矩形区域的小图
- 如何能让英语水平在一年半载内得到大幅提升?(备注下)
- SQL中除法计算保留整数或几位小数(除法那些事儿!)
- 信息系统开发与管理【六】之 系统设计
- ugp和千幻魔镜买哪个好_2018入门级手机VR眼镜对比区别:目前哪个vr眼镜牌子效果更好?选哪款vr眼镜性价比高,求推荐2017...
- 海南计算机的初中学校有哪些,海南海口十大初中排行榜
- 1 最新最全新东方考研英语笔记