使用OpenCV提取不同颜色物体
在我们的程序中,我们要提取的是一个蓝色的物体。下面就是就是我们要做的几步:
• 将图像转换到HSV 空间
• 设置HSV 阈值到蓝色范围。
• 获取蓝色物体。
原图片如下:
我们需要从其中提取出蓝色的部分并显示出来。我们需要使用这样几个函数:
cv2.cvtColor():将载入的RGB模式图片转换为HSV模式,这是因为HSV模式下能够更加容易地表示一种特定地颜色。
cv2.inRange(src, lowerb, upperb, dst=None):将图片二值化。对于图片中的每一个像素点,将其值与lowerb和upperb进行比较,如果在这个范围内则将其设置为255,反之修改为0。使用这个函数我们可以得到ROI的掩模。
cv2.bitwise_and():按位与运算。我们使用图片ROI的掩模与原图进行按位与运算后,可将除ROI外的其他区域像素点的值变为0,而ROI区域的值则保持不变(按照二进制进行与运算时,有1&0=0,0&0=0,0&1=0,1&1=1;掩模上ROI区域像素点的值均被修改为255,即11111111,与原图片与运算后,原图片上对应ROI区域的像素点值保持不变;掩模上ROI区域以外的值被修改为0,与原图片进行与运算后,原图上对应区域的像素点值被修改为0)。
cv2.imshow():显示图片。
程序代码如下:
import cv2 import numpy as np lower_blue=np.array([110,50,50]) upper_blue=np.array([130,255,255]) img1=cv2.imread("Blue_Green_Red.jpg") xsize,ysize,channel=img1.shape #调整图片大小 img1=cv2.resize(img1,(ysize//2,xsize//2)) frame=cv2.cvtColor(img1,cv2.COLOR_BGR2HSV) mask_blue=cv2.inRange(frame,lower_blue,upper_blue) res_blue=cv2.bitwise_and(frame,frame,mask=mask_blue) res_blue=cv2.cvtColor(res_blue,cv2.COLOR_HSV2BGR) cv2.imshow("mask_blue",mask_blue) cv2.imshow("res_blue",res_blue) cv2.waitKey(0) cv2.destroyAllWindows()
运行结果如下:
可以看到,蓝色区域被很好的提取出来了。这种方法在选择非矩形ROI时非常有用,常常用于logo的投射。
转载于:https://www.cnblogs.com/puheng/p/9228473.html
使用OpenCV提取不同颜色物体相关推荐
- python更改图片中物体的颜色_Python Opencv提取图片中某种颜色组成的图形的方法...
Python Opencv提取图片中某种颜色组成的图形的方法 主要目标识别图中红色的裂缝,尝试了几种不同的方法,最后发现比较每一点的RGB差值可以很好的解决这个问题,也就是提取图片中的红色相关信息.处 ...
- Python,OpenCV提取图片中的多个茄子种子轮廓,并按从左到右排序后显示
Python,OpenCV提取图片中的多个茄子种子轮廓,并按从左到右排序后显示 1. 效果图 2. 源码 写这篇博客源于博友的提问,期望把下图中的多个茄子种子按从左到右的顺序提取出来: 1. 效果图 ...
- OpenCV检测平面物体
OpenCV检测平面物体 检测平面物体 检测平面物体 本教程的目的是学习如何使用features2d和calib3d模块来检测场景中已知的平面对象. 测试数据:使用数据文件夹中的图像,例如box.pn ...
- opencv提取视频帧,将多张图片组合成视频(C++)
OpenCV-视频处理-视频处理5191 2 opencv提取视频帧,将多张图片组合成视频(C++) 作者:bit452 参考:http://blog.sina.com.cn/s/blog_5f593 ...
- python使用opencv提取光流
python使用opencv提取光流 光流flow特征中包含了一个视频当中运动相关的信息,在视频动作定位当中光流特征使用的比较多,所以记录一下提取光流特征的方法. 使用的方法是TVL1方法,最终提取的 ...
- IoT: Win10+Tensorflow+OpenCV+IPCamera 实时视频物体检测
IoT: Win10+Tensorflow+OpenCV+IPCamera 实时视频物体检测 环境配置 Python3.5 既然是windows下用python,那就不要作死自己弄环境了,直接用ana ...
- 多个物体轮廓c语言提取算法,C++ opencv-3.4.1 提取不规则物体的轮廓
在学习opencv的时候,对一张照片,需要标注照片上物体的不规则轮廓. 如图: 使用opencv进行物体的轮廓处理,关键在于对照片的理解,前期的照片处理的越好最后调用api出来的结果就越接近理想值. ...
- opencv提取图像中的颜色直方图(RGB、HSV)
本篇博客主要介绍利用opencv工具提取一幅图像中的颜色直方图特征.所谓颜色直方图,指的是一幅图像中的颜色分布,与图像中的特定的物体无关,只是用来表示人的眼睛观察到的图像中的颜色分布情况,例如说,一幅 ...
- 【OpenCV 】计算物体的凸包/创建包围轮廓的矩形和圆形边界框/createTrackbar添加滑动条/
目录 topic 1:模板匹配 topic 2:图像中寻找轮廓 topic 3:计算物体的凸包 topic 4:轮廓创建可倾斜的边界框和椭圆¶ topic 5:轮廓矩¶ topic 6:为程序界面添加 ...
最新文章
- mybatis-spring从1.1升级到1.2所带来的dao层级的编写问题
- 一句话搞定deepin中安装cuda的问题
- 关于ajax里面嵌套ajax
- angular2的模板语法
- 算法提高课-搜索-Flood fill算法-AcWing 1106. 山峰和山谷:flood fill、bfs
- 红黑树模拟软件_红黑树
- 基于zxing生成与解析二维码、条形码
- .NET Core微服务之路:基于Consul最少集群实现服务的注册与发现(一)
- 9于word没有注册类_XPage系列这次升级后终于是全自动化注册了!
- 按钮悬浮固定在微信小程序底部
- 解决 kindle 书籍字体颜色偏淡问题的方法
- 全面系统地总结Linux的基本操作(下)
- linux DNS安装配置
- 宇宙第一 IDE Visual Studio 支持 Java 了!
- 中兴路西藏北路到浦东国际机场路线(ddmap20100114)
- matlab广义误差分布,基于Copula函数的多源径流预报误差联合分布研究
- Fragment跳转Fragment以及闭坑指南、方法isadded()
- 解决ubuntu下外接2k显示器却无法调2k分辨率问题
- JS逆向加密——B 站弹幕 protobuf 分析
- ubuntu18.04上使用7z分卷压缩和解压
热门文章
- Ubuntu15.10使用mysql
- 【转】Android - 文件读写操作 总结
- ACM MM 2021 北航鹏城实验室提出 SOD 新方法:互补三边解码器网络(CTDNet),兼顾高性能和高效率...
- CVPR 2021 目标检测、跟踪和姿态估计最新进展分享
- 每帧只需9ms,手机实时「三维动作识别」
- AAAI 2020 | 北理工阿里文娱:你所看视频的介绍,可以用到这样的「图像描述」技术...
- 机器学习的下一站:AutoML | 文末送书
- Mask R-CNN抢车位,快人一步!
- 700 页的机器学习笔记火啦,图文生动形象
- 港中文等提出:开放世界实体分割