上个文章讲了opencv的安装,以及读写照片,显示照片,图片的属性。
如果没有看过的,下面是链接初学opencv 1

1.视频的读取

和图片一样,视频也可以被电脑获取,处理出我们想要的东西。

这个截图是我从电脑里读取的,他是这次我们处理的视频。
这个人手上拿了一个绿色的光盘…或者碟子???这都无所谓,主要的是我们要知道它能够干什么。
opencv的作用就是可以把能够突出的某种颜色展示出来,比如说我们把其他颜色都变成黑色,然后把绿色变成白色,那么是不是就可以更加明显的看出来了?
代码如下:

import cv2 as cv
import numpy as npdef extrace_object_demo():capture = cv.VideoCapture("C:/Users/dahula/Desktop/lalal.mp4")while(True):ret, frame = capture.read()if ret == 0:breakhsv = cv.cvtColor(frame, cv.COLOR_BGR2HSV)lower_hsv = np.array([37,43,46])upper_hsv = np.array([77,77,255])mask = cv.inRange(hsv, lowerb=lower_hsv, upperb=upper_hsv)cv.imshow("video",frame)cv.imshow("mask",mask)c = cv.waitKey(40)if c==27:breakextrace_object_demo()cv.waitKey(0)cv.destroyAllWindows()

然后显示结果为

大家可以清晰的看到,他手中的白色光盘。

我解释一下这里的
lower_hsv = np.array([37,43,46])
upper_hsv = np.array([77,77,255])


这就是色彩空间转换api,只要找到对应的颜色,申请两个数组,一个放最大值,一个放最小值,然后将对应的数字写入数组,便可以实现色彩转换。色彩转换是opencv很常见的一个重要工具。具体的会在接下来的文章中做出解释。

2.通道分离与合并

上篇博客讲到,图片的属性有三个,其中之一就是通道,而每个像素点有3个通道,我们的通道分离与合并就是从这样。

b,g,r = i=cv.split(src)
cv.imshow("bule",b)
cv.imshow("green",g)
cv.imshow("red",r)

上面的代码是通道分离

src = cv.merge([b,g,r])#对所有通道进行合成


这就是合成结果,当然,我们也可以对三个通道中的一个通道进行更改,看看得出来的图像什么样子吧!


这是我们将red的通道值改为了0,所得到的图片

src[:,:,2] = 0

当然也可以对其他的通道值进行更改,这里就不做过多解释!

3.总结

这次总结的opencv知识是偏向于实践的,所以大家可以下去自己尝试一下,然后会有一个更深的了解。接下来我会继续对opencv这里的知识点做总结的,到最后还有一个实战案例,敬请期待!

初学opencv 2相关推荐

  1. 初学OpenCV:用本地摄像头拍照并保存为灰度图片

    初学OpenCV 用本地摄像头拍照并保存为灰度图片 import cv2 as cvdef openVideo():vix = cv.VideoCapture(0) #打开摄像头while True: ...

  2. 初学opencv c++学习笔记(二)图像空间色彩转换cvtColor()

    对图像的色彩转换用到cvtColor()函数,本章将对此其用法进行解析. 目录 一.色彩空间转换 官方定义 函数参数解释 代码演示 RGB--HSV  RGB--GRAY BGR--RGB 总结 提示 ...

  3. 初学opencv/基本操作

    #coding:utf-8 """ 基本操作 """ import numpy as np import cv2 import matplo ...

  4. OpenCv Java 简单的图形轮廓绘制 (5)

    初学Opencv实现一点点的功能都感觉很是吃力,所以不得不写点东西记忆一下,不然明天又忘记了 好记星不如烂笔头 我就想能不能处分出图片中的正方形和圆形,标记出来,我们这边就绘制器图像,下一步就是认识图 ...

  5. Anaconda环境下OpenCV的安装

    Anaconda环境下OpenCV的安装 本人小白,初学OpenCV,结果在安装的时候就遇到了麻烦,总是出错.尝试过 方案一:直接conda install OpenCV,方案二:在官网直接下载Ope ...

  6. Opencv+Windows+Codeblocks+C++安装笔记,花了三天终于在公司各种限制条件下成功打开图片

    因为VS太大,而且在公司使用需要license.所以选择了Dev-cpp,虽然作为IDE来说简单上手快,但是对opencv的支持很少,遇到各种安装配置问题都没有人分享,尝试了两天终于放弃.最后选择了C ...

  7. opencv之namedWindow,imshow出现两个窗口

    初学opencv,代码如下,按理来说结果应该是:一个cmd命令行窗口,一个显示照片的窗口 #include<opencv2\opencv.hpp> #include<iostream ...

  8. 50 行代码,看 Python + OpenCV 玩转实时图像处理!

    本文来自博客专栏<Python> 本专栏专注于Python项目实战开发应用 初学OpenCV图像处理的小伙伴肯定对什么高斯函数.滤波处理.阈值二值化等特性非常头疼,这里给各位分享一个小项目 ...

  9. openCV错误解决方案:无法启动此程序,因为计算机中丢失opencv_world310.dll

    最近在初学opencv时,遇到了一些配置上的问题.我的VS版本是2017版本,opencv版本是3.1.0版本.对于初学者,一般的配置步骤如下: 1.配置环境变量 右键->属性->高级系统 ...

最新文章

  1. 使用Tensorize评估硬件内部特性
  2. 【Apollo源码分析】系列的第三部分【prediction】_slamcode的博客 -CSDN博客
  3. android 弹出编辑框,Android编程实现的EditText弹出打开和关闭工具类
  4. Android中使用AlertDialog实现几种不同的对话框
  5. [CODEVS 3147] 矩阵乘法 2
  6. c c mySQL机票设计_期末课程设计之 c++操作mysql完成机票预订系统(vc 6.0配置mysql环境)...
  7. zbb20180913 java synchronized同步静态方法和同步非静态方法的异同
  8. Laravel 的安装使用
  9. 【规范化标准】之 ESLint、Stylelint
  10. 知乎内容营销新动作:别处种草 知乎种树
  11. MinGW找不到Gcc的解决方法
  12. oracle多表groupby,Oracle中group by用法
  13. Java常量什么时候被回收,JVM GC调优(2)-GC算法判定对象可以被回收(部分摘自深入理解Java虚拟机) - Java 技术驿站-Java 技术驿站...
  14. 深度学习中梯度消失原因、梯度爆炸及解决方案
  15. Safari插件机制研究(二) 插件的视图管理
  16. php输出26个大小写英文字母
  17. android 应用后台 闪退,关于安卓应用后台运行后,重新进入,应用闪退问题
  18. 【一些有关GraN-DAG的知识点总结】
  19. 拿到外卖后秒退单,一连12天吃霸王餐的女子栽了!
  20. 回答薛定谔问题: 生命是什么?自由能公式

热门文章

  1. 美股 基础知识2-常见问答
  2. STM32F407学习笔记——MG90S舵机模块(基本控制)
  3. 【IAP】IAP在线升级流程
  4. android代码里切换横竖屏,Android横竖屏切换
  5. SAP PP 笔记(一) 概述
  6. uniapp 使用 wechatSi 实现语音识别
  7. 13 服务:愿意为您效劳
  8. 8通道同步并行数据采集PCI模块的设计
  9. 爬虫----b站弹幕
  10. python计算球的体积的函数设计