颜色空间转换
目标
• 你将学习如何对图像进行颜色空间转换,比如从BGR 到灰度图,或者从BGR 到HSV 等。
• 我没还要创建一个程序用来从一幅图像中获取某个特定颜色的物体。

• 我们将要学习的函数有:cv2.cvtColor(),cv2.inRange() 等。

# -*- coding: utf-8 -*-
"""
Created on Mon Jan 22 14:06:05 2018
"""import cv2
import numpy as np
from matplotlib import pyplot as plt#opencv 读图
img = cv2.imread("E:\\python\\opencv\\images\\demo0.png")#转换颜色空间
#对于BGR$Gray 的转换,我们要使用的flag 就是cv2.COLOR_BGR2GRAY。同样对于BGR$HSV 的转换,我们用的flag 就是cv2.COLOR_BGR2HSV。
#你还可以通过下面的命令得到所有可用的flag。
'''
flags=[i for i in dir(cv2) if i.startswith('COLOR_')]
print flags
'''#注意:在OpenCV 的HSV 格式中,H(色彩/色度)的取值范围是[0,179],S(饱和度)的取值范围[0,255],V(亮度)的取值范围[0,255]。但是不
#同的软件使用的值可能不同。所以当你需要拿OpenCV 的HSV 值与其他软件的HSV 值进行对比时,一定要记得归一化。#物体跟踪
#提取的是一个蓝色的物体例子
'''
cap=cv2.VideoCapture(0)
while(1):# 获取每一帧ret,frame=cap.read()# 转换到HSVhsv=cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)# 设定蓝色的阈值lower_blue=np.array([110,50,50])upper_blue=np.array([130,255,255])# 根据阈值构建掩模mask=cv2.inRange(hsv,lower_blue,upper_blue)# 对原图像和掩模进行位运算res=cv2.bitwise_and(frame,frame,mask=mask)# 显示图像cv2.imshow('frame',frame)cv2.imshow('mask',mask)cv2.imshow('res',res)k=cv2.waitKey(5)&0xFFif k==27:break
# 关闭窗口
cv2.destroyAllWindows()
'''#图像平滑,OpenCV 提供的函数cv.filter2D() 可以让我们对一幅图像进行卷积操作。
'''
kernel = np.ones((5,5),np.float32)/25
dst = cv2.filter2D(img,-1,kernel)
plt.subplot(121),plt.imshow(img),plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(dst),plt.title('Averaging')
plt.xticks([]), plt.yticks([])
plt.show()
'''#这是由一个归一化卷积框完成的。他只是用卷积框覆盖区域所有像素的平均值来代替中心元素。可以使用函数cv2.blur() 和cv2.boxFilter() 来完这个任务。
'''
blur = cv2.blur(img,(5,5))
plt.subplot(121),plt.imshow(img),plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(blur),plt.title('Blurred')
plt.xticks([]), plt.yticks([])
plt.show()
'''#高斯模糊,实现的函数是cv2.GaussianBlur()。我们需要指定高斯核的宽和高(必须是奇数)。以及高斯函数沿X,Y 方向的标准差。
#如果我们只指定了X 方向的的标准差,Y 方向也会取相同值。如果两个标准差都是0,那么函数会根据核函数的大小自己计算。高斯滤波可以有效的从图像中去除高斯噪音。
#0 是指根据窗口大小(5,5)来计算高斯函数标准差
'''
blur = cv2.GaussianBlur(img,(5,5),0)
'''

OpenCV 中的图像处理相关推荐

  1. OpenCV 中的图像处理 004_平滑图像

    本文主要内容来自于 OpenCV-Python 教程 的 OpenCV 中的图像处理 部分,这部分的全部主要内容如下: 改变色彩空间 学习在不同色彩空间之间改变图像.另外学习跟踪视频中的彩色对象. 图 ...

  2. 第四章:OpenCV中的图像处理

    第四章:OpenCV中的图像处理 本章节你将学习图像的改变色彩空间.提取对象.图像的几何变换.图像的阈值.平滑图像等OpenCV图像处理的基本内容. 更多内容请关注我的GitHub库:TonyStar ...

  3. python识别图像中绿色的部分_[OpenCV-Python] OpenCV 中的图像处理 部分 IV (四)

    部分 IV OpenCV 中的图像处理 21 OpenCV 中的轮廓 21.1 初识轮廓 目标 • 理解什么是轮廓 • 学习找轮廓,绘制轮廓等 • 函数:cv2.findContours(),cv2. ...

  4. OpenCV中的图像处理 —— 傅里叶变换+模板匹配

    OpenCV中的图像处理 -- 傅里叶变换+模板匹配 现在也在逐渐深入啦,希望跟大家一起进步越来越强 目录 OpenCV中的图像处理 -- 傅里叶变换+模板匹配 1. 傅里叶变换 1.1 Numpy实 ...

  5. OpenCV中的图像处理 —— 霍夫线 / 圈变换 + 图像分割(分水岭算法) + 交互式前景提取(GrabCut算法)

    OpenCV中的图像处理 -- 霍夫线 / 圈变换 + 图像分割(分水岭算法) + 交互式前景提取(GrabCut算法)

  6. OpenCV中的图像处理 —— 图像阈值+图像平滑+形态转换

    OpenCV中的图像处理 -- 图像阈值+图像平滑+形态转换 目录 OpenCV中的图像处理 -- 图像阈值+图像平滑+形态转换 1. 图像阈值 1.1 简单阈值 1.2 自适应阈值 1.3 Otsu ...

  7. OpenCV中的图像处理 —— 改变颜色空间+图像几何变换

    OpenCV中的图像处理 -- 改变颜色空间+图像几何变换 这一部分主要介绍OpenCV图像处理中的改变颜色空间和图像的几何变换,颜色空间的改变应用非常广泛,在处理图像的实际问题中,经常需要要图像变换 ...

  8. python去除图片复杂背景_[OpenCV-Python] OpenCV 中的图像处理 部分 IV (五)

    部分 IV OpenCV 中的图像处理 22 直方图 22.1 直方图的计算,绘制与分析 目标 • 使用 OpenCV 或 Numpy 函数计算直方图 • 使用 Opencv 或者 Matplotli ...

  9. OpenCV中的图像处理 —— 图像梯度+Canny边缘检测+图像金字塔

    OpenCV中的图像处理 -- 图像梯度+Canny边缘检测+图像金字塔 目录 OpenCV中的图像处理 -- 图像梯度+Canny边缘检测+图像金字塔 1. 图像梯度 1.1 Sobel和Schar ...

  10. (三)OpenCV中的图像处理之轮廓

    注释:本文翻译自OpenCV3.0.0 document->OpenCV-Python Tutorials,包括对原文档种错误代码的纠正 该章节分为以下四个小节: (一)     Contour ...

最新文章

  1. Debian/Ubuntu/Raspbian 时间同步
  2. hdu 5424(dfs搜索)
  3. python实现二叉搜索树_python实现二叉查找树
  4. Bookmarklet
  5. Java 语言 ArrayList 和 JSONArray 相互转换
  6. SQL语句导致性能问题
  7. 万事达卡:公共与私营部门通力合作对于创建智慧城市有重要意义
  8. 生命的书写,梦想的呈现
  9. Apache基本设置
  10. 从零开始撸一个Fresco之gif和Webp动画
  11. 仿企查查php源码,企查查企业信息页面精简工具
  12. Android 省电模式 降频吗,开启省电模式会降频吗
  13. 使用VMware安装Ubuntu虚拟机 - 完整教程
  14. linux安装tt客户端,timesten的安装与配置(linux)
  15. 电视剧《奋斗》精彩对白节选---(三)
  16. 合并带附件的电子邮件
  17. 一只纯白小菜鸡是如何走上嵌入式学习这条道路的
  18. 非极大值抑制算法(Non-Maximum Suppression,NMS)
  19. 【测绘程序设计】——椭球面弧长计算
  20. SpingBoot—微服务初始化资源方法

热门文章

  1. 案例4-1.6 树种统计 (25 分)_18行代码AC
  2. 【最详细】数据结构(C语言版 第2版)第八章课后习题答案 严蔚敏 等 编著
  3. L1-007 念数字 (10分) (13行代码AC!!)
  4. I/O数据有几种传送方式?各有什么特点?【最精炼】
  5. java运行时异常的特点是什么_Java运行时异常和非运行时异常
  6. java中变量的作用域
  7. 内存溢出_关于PermGen Space内存溢出解决方案
  8. 算法的优缺点_机器学习算法优缺点 amp; 如何选择
  9. 计算机二级办公软件aoa 百度云,计算机二级办公 考生注意事项(二级AOA)
  10. mysql linuxl环境搭建_Linux环境下的MySQL搭建