OpenCV与图像处理学习二——图像直方图与色彩空间

OpenCV与图像处理学习二——图像直方图与色彩空间

    • 2.4 图像直方图(Image Histogram)
      • 2.4.1 直方图的绘制
      • 2.4.2 三通道直方图绘制
    • 2.5 颜色空间
      • 2.5.1 RGB颜色空间
      • 2.5.2 HSV颜色空间(Hue、Saturation、Value)
      • 2.5.3 HSI
      • 2.5.4 CMYK(Cyan、Magenta、Yellow、black)

本次学习笔记是对上次笔记的续写,一次写太多看起来也累。。
上次笔记的连接:OpenCV与图像处理学习一——图像基础知识(1)

2.4 图像直方图(Image Histogram)

用以表示数字图像中亮度分布的直方图,标绘了图像中每个亮度值的像素数。横坐标左侧为纯黑、较暗区域,右侧为纯白、较亮区域。

如下图所示,两幅图的右上角都绘制了它们各自的图像直方图:
在这里插入图片描述
意义:是图像中像素强度分布的图形表达方式。它统计了每个强度值所具有的像素个数。CV领域借助图像直方图来实现图像的二值化。

2.4.1 直方图的绘制

函数:

cv.calcHist( images, channels, mask, histSize, ranges[, hist[, accumulate]]	)

参数:

  1. images:待统计图像,需用中括号括起来
  2. channels待统计的通道
  3. mask:这里没用到,暂时不知道干啥的。
  4. histSize:表示直方图分成多少份。
  5. ranges:表示直方图中各个像素的值,灰度值范围。

先来看一下单通道的统计:

from matplotlib import pyplot as plt
import cv2
import numpy as np
img = cv2.imread('girl.jpg')
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)plt.imshow(img_gray, cmap=plt.cm.gray)
hist = cv2.calcHist([img], [0], None, [256], [0, 256])plt.figure()
plt.title("Grayscale Histogram")
plt.xlabel("Bins")
plt.ylabel("# of Pixels")
plt.plot(hist)
plt.xlim([0, 256])
plt.show()

这里只统计了第一个通道的直方图,结果如下所示:
在这里插入图片描述

在这里插入图片描述

2.4.2 三通道直方图绘制

看一下三个通道的例子:

from matplotlib import pyplot as plt
import cv2
girl = cv2.imread("girl.jpg")
cv2.imshow("girl", girl)
color = ("b", "g", "r")
#使用for循环遍历color列表,enumerate枚举返回索引和值
for i, color in enumerate(color):hist = cv2.calcHist([girl], [i], None, [256], [0, 256])plt.title("girl")plt.xlabel("Bins")plt.ylabel("num of perlex")plt.plot(hist, color = color)plt.xlim([0, 260])
plt.show()
cv2.waitKey(0)
cv2.destroyAllWindows()

看一下结果:
在这里插入图片描述

在这里插入图片描述
由此可见,三通道的彩色图里的像素值的分布是不一样的。

2.5 颜色空间

颜色空间也称彩色模型/彩色空间/彩色系统,用途是在某些标准下用通常可接受的方式对彩色加以说明。

常见的颜色空间有RGB、HSV、HSI以及CMYK,下面分别来看一下。

2.5.1 RGB颜色空间

主要用于计算机图形学中,依据人眼识别的颜色创建,图像中每一个像素都具有R、G、B三个颜色分量组成,均属于[0,255]。通常表示某个颜色时,写成一个3维向量形式(110,150,130)。

RGB颜色模型
在这里插入图片描述

  • 原点对应的颜色为黑色,三分量均为0。
  • 距离原点最远的顶点对应颜色为白色,三分量均为1。
  • 从黑色到白色的灰度值分布在这两点的连线上,该虚线称为灰度线。
  • 立方体其余各点对应不同颜色,即三原色红、绿、蓝及其混合色黄、品红、青色。

2.5.2 HSV颜色空间(Hue、Saturation、Value)

根据颜色直观特性由A.R.Smith在1978年创建的一种颜色空间,参数分别是:色调(Hue)、饱和度(Saturation)、明度( Value)。

HSV颜色模型
在这里插入图片描述

  • H通道:Hue,色调/色彩,代表颜色,0°对应红色,120°对应绿色,240°对应蓝色。
  • S通道:Saturation,饱和度,取值范围:0%~100%,值越大,越饱和。
  • V通道:Value,明暗,数值越大越亮,0%(黑)到100%(白)。

RGB空间与HSV空间转化:

import cv2
# 色彩空间转换函数
def color_space_demo(image):gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)cv2.imshow('gray', gray)hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)# print(hsv)cv2.imshow('hsv', hsv)
# 读入一张彩色图
src = cv2.imread('girl.jpg')
cv2.imshow('before', src)
# 调用color_space_demo函数进行色彩空间转化
color_space_demo(src)
cv2.waitKey(0)
cv2.destroyAllWindows()

结果如下所示:
在这里插入图片描述

2.5.3 HSI

由美国色彩学家孟塞尔于1915年提出,它反映了人视觉系统感知彩色的方式,以色调、饱和度和强度三种基本特征量来感知颜色,即把HSV中的明度换成了强度I。

HSI颜色模型
在这里插入图片描述
模型优点:

  • 在处理彩色图像时,可仅对I分量进行处理,结果不改变原图像中的彩色种类。
  • HSI模型完全反映了人感知颜色的基本属性,与人感知颜色的基本属性,与人感知颜色的结果一一对应。

2.5.4 CMYK(Cyan、Magenta、Yellow、black)

应用于印刷工业,印刷业通过青(C)、品(M)、黄(Y)三原色油墨的不同网点面积率的叠印来表现丰富多彩的颜色和阶调,这便是三原色的CMY颜色空间。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/491644.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript基础5——关于ECMAscript的函数

ECMAScript的函数概述(一般定义到<head>标签之间)(1)定义函数&#xff0c;JavaScript一般有三种定义函数方法&#xff1a; *第一种是使用function语句定义函数&#xff08;静态方法&#xff09; 1 function 函数名(var1,var2,...,varX) 2 { 3 4 代码&…

中国科学家首次观察到量子世界的宇称时间对称

来源&#xff1a;中国新闻网 中国科学家调控量子跳双人舞 首次观察到量子世界的宇称时间对称中新社合肥6月3日电 (吴兰 范琼)记者3日从中国科学技术大学获悉&#xff0c;该校杜江峰院士的研究团队通过调控量子跳出双人舞&#xff0c;在国际上首次观察到量子世界的宇称时间对称。…

OpenCV与图像处理学习三——线段、矩形、圆、椭圆、多边形的绘制以及文字的添加

OpenCV与图像处理学习三——线段、矩形、圆、椭圆、多边形的绘制以及文字的添加一、OpenCV中的绘图函数1.1 线段绘制1.2 矩形绘制1.3 圆绘制1.4 椭圆的绘制1.5 多边形绘制1.6 添加文字上两次笔记主要知识点回顾&#xff1a; 数字图像基本概念图像的读取、显示与保存图像直方图…

AI英雄 | 论人工智能与自由意志,请看尤瓦尔与李飞飞的这场“激辩”

来源&#xff1a;Towards Data Science尤瓦尔赫拉利和李飞飞在斯坦福大学展开了一场别开生面的对话&#xff0c;他们所提出的问题已经远远超出了我们可以解答的范围。《连线》杂志主编尼古拉斯•汤普森在座无虚席的纪念礼堂主持了这场90分钟的谈话。赫拉利&#xff08;Harari&a…

OpenCV与图像处理学习四——图像几何变换:平移、缩放、旋转、仿射变换与透视变换

OpenCV与图像处理学习四——图像几何变换&#xff1a;平移、缩放、旋转、仿射变换与透视变换二、图像的几何变换2.1 图像平移2.2 图像缩放&#xff08;上采样与下采样&#xff09;2.3 图像旋转2.4 仿射变换2.5 透视变化2.6 几何变化小结续上次的笔记&#xff1a;OpenCV与图像处…

课后作业和动手动脑

一&#xff0c;运行TestInherits.java 通过super调用基类构造方法&#xff0c;必是子类构造方法中的第一个语句。 二.为什么子类的构造方法在运行之前&#xff0c;必须调用父类的构造方法&#xff1f;能不能反过来&#xff1f;为什么不能反过来&#xff1f; 构造函数的主要作用…

OpenCV与图像处理学习五——图像滤波与增强:线性、非线性滤波、直方图均衡化与Gamma变换

OpenCV与图像处理学习五——图像滤波与增强&#xff1a;线性、非线性滤波、直方图均衡化与Gamma变换三、图像滤波与增强3.1 线性滤波3.1.1 方框滤波3.1.2 均值滤波3.1.3 高斯滤波3.1.4 一般卷积滤波3.2 非线性滤波3.2.1 中值滤波3.2.2 双边滤波3.3 图像直方图均衡化3.3.1 单通道…

张钹院士:人工智能技术已进入第三代

来源&#xff1a;经济观察报近日&#xff0c;中科院院士、清华大学人工智能研究院院长张钹教授接受记者采访时认为&#xff0c;目前基于深度学习的人工智能在技术上已经触及天花板。从长远来看&#xff0c;必须得走人类智能这条路&#xff0c;最终要发展人机协同&#xff0c;人…

软件工程作业

典型用户1 名字老陈性别&#xff0c;年龄男&#xff0c;40岁职业教师收入两万/年知识层次和能力本科&#xff0c;熟练计算机操作生活、工作情况教书&#xff0c;辅导孩子完成作业动机&#xff0c;目的&#xff0c;困难希望节省辅导孩子的时间&#xff0c;用于自己的业务工作用户…

numpy.ndarray索引/切片方式

注意&#xff1a;获得多维数组的前三个子数组不能用array[0,1,2]&#xff0c;应该用 array[0:3]&#xff0c;如下例子&#xff1a; a np.random.random([85, 7794, 64]) b a[0:3] print(np.shape(b)) # (3, 7794, 64)

OpenCV与图像处理学习六——图像形态学操作:腐蚀、膨胀、开、闭运算、形态学梯度、顶帽和黑帽

OpenCV与图像处理学习六——图像形态学操作&#xff1a;腐蚀、膨胀、开、闭运算、形态学梯度、顶帽和黑帽四、图像形态学操作4.1 腐蚀和膨胀4.1.1 图像腐蚀4.1.2 图像膨胀4.2 开运算与闭运算4.2.1 开运算4.2.2 闭运算4.3 形态学梯度&#xff08;Gradient&#xff09;4.4顶帽和黑…

解密硅谷大骗局

来源&#xff1a;硅谷封面企鹅号、腾讯科技在许多为人称道的科技创业故事中&#xff0c;总不乏硅谷的名字。从英特尔、IBM到微软、苹果&#xff0c;从雅虎、谷歌到Twitter、Facebook&#xff0c;这里诞生了很多知名科技企业。对于全球的创业者来说&#xff0c;硅谷就是梦想中的…

OpenCV与图像处理学习七——传统图像分割之阈值法(固定阈值、自适应阈值、大津阈值)

OpenCV与图像处理学习七——传统图像分割之阈值法&#xff08;固定阈值、自适应阈值、大津阈值&#xff09;一、固定阈值图像分割1.1 直方图双峰法1.2 OpenCV中的固定阈值分割二、自动阈值图像分割2.1 自适应阈值法2.2 迭代法阈值分割2.3 Otsu大津阈值法前面的笔记介绍了一些Op…

Foxmail 绑定企业邮箱

转载于:https://www.cnblogs.com/wu628/p/4955017.html

边缘计算将吞掉云计算!

来源&#xff1a;CSDN以下为译文&#xff1a;边缘计算已成为物联网的重要趋势。高德纳咨询公司认为边缘计算是2019年的一项技术趋势。各个物联网公司发现在将数据发送到云之前&#xff0c;通过边缘计算处理数据有很大的好处。最近Micron/Forrester的调查证实了这一趋势&#xf…

OpenCV与图像处理学习八——图像边缘提取(Canny检测代码)

OpenCV与图像处理学习八——图像边缘提取&#xff08;Canny检测代码&#xff09;一、图像梯度1.1 梯度1.2 图像梯度二、梯度图与梯度算子2.1模板卷积2.2 梯度图2.3 梯度算子2.3.1 Roberts交叉算子2.3.2 Prewitt算子2.3.3 Sobel算子三、Canny边缘检测算法&#xff08;代码实现&a…

面向人工智能的计算机体系结构

来源&#xff1a;计算机研究与发展前 言近几年来人工智能技术的飞速发展使得其应用迅猛扩大&#xff0c;而传统的计算机体系结构对于面向人工智能的应用在处理速度、能耗、使用的方便性等方面有着诸多不足。随着人工智能应用的发展&#xff0c;面向人工智能的体系结构成为体系结…

OpenCV与图像处理学习九——连通区域分析算法(含代码)

OpenCV与图像处理学习九——连通区域分析算法&#xff08;含代码&#xff09;一、连通区域概要二、Two-Pass算法三、代码实现一、连通区域概要 连通区域&#xff08;Connected Component&#xff09;一般是指图像中具有相同像素值且位置相邻的前景像素点组成的图像区域&#x…

(180页PPT)|清华大学孙富春教授深度讲解: 人工智能技术与产业发展

来源&#xff1a;精智工厂[导读】本文是清华大学孙富春教授在机械工业出版社讲座交流PPT&#xff0c;孙教授从背景与历史、深度学习、脑认知、产业&#xff08;装备&#xff09;发展、发展趋势等五个方面详细解读了人工智能技术与产业发展。未来智能实验室是人工智能学家与科学…

OpenCV与图像处理学习十——区域生长算法(含代码)

OpenCV与图像处理学习十——区域生长算法&#xff08;含代码&#xff09;一、区域生长算法概要二、区域生长算法原理三、代码应用一、区域生长算法概要 区域生长是一种串行区域分割的图像分割方法。区域生长是指从某个像素出发&#xff0c;按照一定的准则&#xff0c;逐步加入…