在我们的程序中,我们要提取的是一个蓝色的物体。下面就是就是我们要做的几步:

• 将图像转换到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提取不同颜色物体相关推荐

  1. python更改图片中物体的颜色_Python Opencv提取图片中某种颜色组成的图形的方法...

    Python Opencv提取图片中某种颜色组成的图形的方法 主要目标识别图中红色的裂缝,尝试了几种不同的方法,最后发现比较每一点的RGB差值可以很好的解决这个问题,也就是提取图片中的红色相关信息.处 ...

  2. Python,OpenCV提取图片中的多个茄子种子轮廓,并按从左到右排序后显示

    Python,OpenCV提取图片中的多个茄子种子轮廓,并按从左到右排序后显示 1. 效果图 2. 源码 写这篇博客源于博友的提问,期望把下图中的多个茄子种子按从左到右的顺序提取出来: 1. 效果图 ...

  3. OpenCV检测平面物体

    OpenCV检测平面物体 检测平面物体 检测平面物体 本教程的目的是学习如何使用features2d和calib3d模块来检测场景中已知的平面对象. 测试数据:使用数据文件夹中的图像,例如box.pn ...

  4. opencv提取视频帧,将多张图片组合成视频(C++)

    OpenCV-视频处理-视频处理5191 2 opencv提取视频帧,将多张图片组合成视频(C++) 作者:bit452 参考:http://blog.sina.com.cn/s/blog_5f593 ...

  5. python使用opencv提取光流

    python使用opencv提取光流 光流flow特征中包含了一个视频当中运动相关的信息,在视频动作定位当中光流特征使用的比较多,所以记录一下提取光流特征的方法. 使用的方法是TVL1方法,最终提取的 ...

  6. IoT: Win10+Tensorflow+OpenCV+IPCamera 实时视频物体检测

    IoT: Win10+Tensorflow+OpenCV+IPCamera 实时视频物体检测 环境配置 Python3.5 既然是windows下用python,那就不要作死自己弄环境了,直接用ana ...

  7. 多个物体轮廓c语言提取算法,C++ opencv-3.4.1 提取不规则物体的轮廓

    在学习opencv的时候,对一张照片,需要标注照片上物体的不规则轮廓. 如图: 使用opencv进行物体的轮廓处理,关键在于对照片的理解,前期的照片处理的越好最后调用api出来的结果就越接近理想值. ...

  8. opencv提取图像中的颜色直方图(RGB、HSV)

    本篇博客主要介绍利用opencv工具提取一幅图像中的颜色直方图特征.所谓颜色直方图,指的是一幅图像中的颜色分布,与图像中的特定的物体无关,只是用来表示人的眼睛观察到的图像中的颜色分布情况,例如说,一幅 ...

  9. 【OpenCV 】计算物体的凸包/创建包围轮廓的矩形和圆形边界框/createTrackbar添加滑动条/

    目录 topic 1:模板匹配 topic 2:图像中寻找轮廓 topic 3:计算物体的凸包 topic 4:轮廓创建可倾斜的边界框和椭圆¶ topic 5:轮廓矩¶ topic 6:为程序界面添加 ...

最新文章

  1. mybatis-spring从1.1升级到1.2所带来的dao层级的编写问题
  2. 一句话搞定deepin中安装cuda的问题
  3. 关于ajax里面嵌套ajax
  4. angular2的模板语法
  5. 算法提高课-搜索-Flood fill算法-AcWing 1106. 山峰和山谷:flood fill、bfs
  6. 红黑树模拟软件_红黑树
  7. 基于zxing生成与解析二维码、条形码
  8. .NET Core微服务之路:基于Consul最少集群实现服务的注册与发现(一)
  9. 9于word没有注册类_XPage系列这次升级后终于是全自动化注册了!
  10. 按钮悬浮固定在微信小程序底部
  11. 解决 kindle 书籍字体颜色偏淡问题的方法
  12. 全面系统地总结Linux的基本操作(下)
  13. linux DNS安装配置
  14. 宇宙第一 IDE Visual Studio 支持 Java 了!
  15. 中兴路西藏北路到浦东国际机场路线(ddmap20100114)
  16. matlab广义误差分布,基于Copula函数的多源径流预报误差联合分布研究
  17. Fragment跳转Fragment以及闭坑指南、方法isadded()
  18. 解决ubuntu下外接2k显示器却无法调2k分辨率问题
  19. JS逆向加密——B 站弹幕 protobuf 分析
  20. ubuntu18.04上使用7z分卷压缩和解压

热门文章

  1. Ubuntu15.10使用mysql
  2. 【转】Android - 文件读写操作 总结
  3. ACM MM 2021 北航鹏城实验室提出 SOD 新方法:互补三边解码器网络(CTDNet),兼顾高性能和高效率...
  4. CVPR 2021 目标检测、跟踪和姿态估计最新进展分享
  5. 每帧只需9ms,手机实时「三维动作识别」
  6. AAAI 2020 | 北理工阿里文娱:你所看视频的介绍,可以用到这样的「图像描述」技术...
  7. 机器学习的下一站:AutoML | 文末送书
  8. Mask R-CNN抢车位,快人一步!
  9. 700 页的机器学习笔记火啦,图文生动形象
  10. 港中文等提出:开放世界实体分割