OpenCV:图像的颜色空间转换
导包:
import numpy as np
import cv2
import matplotlib.pyplot as plt
def show(image):
plt.imshow(image)
plt.axis('off')
plt.show()
def imread(image):
image=cv2.imread(image)
image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
return image
RGB当中每一个颜色都有256阶亮度,每一阶都对应着一个亮度:
image=imread("123.jpg")
(R,G,B)=cv2.split(image)#这里将通道进行拆分
print(image.shape)
print(image.shape[:2])
zeros=np.zeros(image.shape[:2],dtype='uint8')#这里只取了图像三要素当中的前面部分,毕竟通道拆分之后其颜色空间就仅有一个了
show(cv2.merge([R,zeros,zeros]))
show(cv2.merge([zeros,G,zeros]))
show(cv2.merge([zeros,zeros,B]))#merge是将通道进行合并
颜色空间的HSV模型。 H代表的是颜色的色调,一共从0—360度。每一度代表这不同的颜色模型 S:代表饱和度,饱和度的取值范围是%0—100,如果饱和度越大,则白色的占有率越小,颜色则越饱满,饱和度越小则白色越明显。 V:代表明度,取值是%0——100,0表示的最黑,100表示的是最亮
#由于我们在opencv当中的颜色最开始都是采用的是BGR的模式,然后我们之前编写的函数将BGR转换成了RGB的模式,但是在这里我们需要重新将RGB的格式
#更改为HSV的格式才对
image=imread("123.jpg")
hsv=cv2.cvtColor(image,cv2.COLOR_RGB2HSV)
print(image.shape)
print(image.shape[:2])
zeros=np.zeros(image.shape[:2],dtype='uint8')#这里只取了图像三要素当中的前面部分,毕竟通道拆分之后其颜色空间就仅有一个了
for (name,chan) in zip(('H','S','V'),cv2.split(hsv)):
cv2.imshow(name,chan)
cv2.waitKey(0)
cv2.destroyAllWindows()
下面展示灰度图的显示,这个在我们图像处理当中的是最为常用的:
image=cv2.imread("123.jpg")#这里用自带的方法读取图片就不会出现图片显示不正确的结果了
gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
cv2.imshow('original',image)
cv2.imshow('gray',gray)
cv2.waitKey(0)
cv2.destroyAllWindows()
OpenCV:图像的颜色空间转换的更多相关文章
- opencv学习笔记——颜色空间转换函数cv::cvtColor详解
cv::cvtColor()用于将图像从一个颜色空间转换到另一个颜色空间的转换(目前常见的颜色空间均支持),并且在转换的过程中能够保证数据的类型不变,即转换后的图像的数据类型和位深与源图像一致. 具体 ...
- Python-OpenCV中图像颜色空间转换
目录 cv2.cvtColor() 1. RGB to GRAY 2. RGB to CIE XYZ 3. RGB to YCrCb JPEG 4. RGB to HSV 5. RGB to HLS ...
- OpenCV学习笔记(5)——颜色空间转换
学习如歌对图像进行颜色空间转换,从BGR到灰度图,或者从BGR到HSV等 创建一个程序用来从一幅图像中获取某个特定颜色的物体 1.转换颜色空间 OpenCV中有超过150种进行颜色空间转化的方法,但是 ...
- python数字图像处理(4):图像数据类型及颜色空间转换
一.图像数据类型及转换 在skimage中,一张图片就是一个简单的numpy数组,数组的数据类型有很多种,相互之间也可以转换.这些数据类型及取值范围如下表所示: Data type Range uin ...
- 颜色空间转换 cvtColor()[OpenCV 笔记13]
void cvtColor(InputArray src, OutputArray dst, ) src: 输入图像 dst: 输出图像 code: 颜色空间转换标识符 OpenCV2的CV_前缀宏命 ...
- OpenCV 的颜色空间转换
# coding: utf-8 ''' 第13章主要介绍:颜色空间转换 ''' import cv2 import numpy as np ''' 经常用到的颜色空间转换是: BGR<-> ...
- opencv IplImage各参数详细介绍以及如何从一个JPEG图像数据指针转换得到IplImage
这篇文章里介绍得最清楚了.http://blog.chinaunix.net/uid-22682903-id-1771421.html 关于颜色空间 RGB颜色空间已经非常熟悉了.HSV颜色空间需要 ...
- OpenCV 学习笔记(10)HSV颜色空间及颜色空间转换(RGB-HSV)
1.1 颜色空间介绍 RGB 颜色空间是大家最熟悉的颜色空间,即三基色空间,任何一种颜色都可以由该三种 颜色混合而成.然而一般对颜色空间的图像进行有效处理都是在 HSV 空间进行的,HSV(色 调 H ...
- OpenCV中IplImage图像格式与BYTE图像数据的转换
最近在将Karlsruhe Institute of Technology的Andreas Geiger发表在ACCV2010上的Efficent Large-Scale Stereo Matchin ...
随机推荐
- C语言基于NIOSII的软件开发及流水灯设计
一.Quartus II 12.1 (32-Bit)进行硬件设计 1.所需要的系统元器件组成 2.系统电路图 二.Nios II 12.1 Software Build Tools for Eclip ...
- ubuntu 18.04 安装并配置adb
获取最新的adb包 wget https://dl.google.com/android/repository/platform-tools-latest-linux.zip 将软件包解压到指定位置 ...
- eclipse中js中文乱码问题的解决办法
在Eclipse中编辑JS文件简直是一种折磨,但是却总是很无奈得要去适应. 这里说一下Eclipse中,编辑JS文件时候,出现中文乱码问题的解决办法. 这个问题很容易想到是文件编码的问题,因此通常是修 ...
- Java8新特性之接口defualt,static方法
简介 作用 Java8中接口引入了defualt,static两种方法提供默认实现,彻底打破了接口不能有默认实现的规定 static 让接口类似于工具类,提供一些静态方法 static方法不会被子类继 ...
- Xamarin 开发环境搭建
一.安装环境 打开 Visual Studio Installer,点击修改,然后勾选 "使用 .NET 的移动开发" 二.移动SDK SDK默认被放置在了E:\Program F ...
- k8s 使用 Init Container 确保依赖的服务已经启动
k8s 使用 Init Container 确保依赖的服务已经启动 Intro 最近 helm 3 正式发布了,dotnetcore 3.1 也正式发布了,最近打算把我的活动室预约项目做一个升级,项目 ...
- 使用redisson时关于订阅数的问题
在使用redisson消息订阅时,我针对门店商品库存减扣进行订阅的操作(在这里一个商品一个监听队列),当正式投入生产时,发现一直再报Subscribe timeout: (" + timeo ...
- Spring基础——AOP通知
spring(AOP通知) 切面 切面是封装通用业务逻辑的组件,可以作用到其他组件上.是spring组件中的某个方法.无返回类型.参数类型与通知类型有关.一个切面 开启数据库 关闭数据库 开启事务 检 ...
- spring的事物管理配置
基于注解的事务管理器配置(AOP) 首先要引入AOP和TX的名称控件 <!-- 使用annotation定义事务 --> <tx:annotation-driven transact ...
- ionic项目使用Google FCM插件和Google maps插件打包android报错冲突问题
这段时间在调FCM推送服务的插件 ,原本以为去年调通过,应该很容易,没想到还是出问题了.现将问题及解决方法整理如下,仅供参考: 先看打包报错截图: 详细报错信息:Please fix ...