使用HSV色彩空间遮罩绿色区域
HSV 颜色空间
导入资源
In []:
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np
import cv2
%matplotlib inline
读入RGB图像
# Read in the image
image = mpimg.imread('images/car_green_screen2.jpg')
plt.imshow(image)
<matplotlib.image.AxesImage at 0x7f5077ca1828>
RGB阈值
将你在之前一直使用的绿色示例中定义的绿色阈值可视化。
# Define our color selection boundaries in RGB values
lower_green = np.array([,,])
upper_green = np.array([,,])
# Define the masked area
mask = cv2.inRange(image, lower_green, upper_green)
# Mask the image to let the car show through
masked_image = np.copy(image)
masked_image[mask != 0] = [0, 0, 0]
# Display it!
plt.imshow(masked_image)
<matplotlib.image.AxesImage at 0x7f504639e748>
转换为HSV
# Convert to HSV
hsv = cv2.cvtColor(image, cv2.COLOR_RGB2HSV)
# HSV channels
h = hsv[:,:,]
s = hsv[:,:,]
v = hsv[:,:,]
# Visualize the individual color channels
f, (ax1, ax2, ax3) = plt.subplots(, , figsize=(,))
ax1.set_title('H channel')
ax1.imshow(h, cmap='gray')
ax2.set_title('S channel')
ax2.imshow(s, cmap='gray')
ax3.set_title('V channel')
ax3.imshow(v, cmap='gray')
<matplotlib.image.AxesImage at 0x7f5046289780>
TODO: 使用HSV色彩空间遮罩绿色区域
然后利用cv2.inRange函数设阈值,去除背景部分
函数很简单,参数有三个
第一个参数:hsv指的是原图
第二个参数:lower_red指的是图像中低于这个lower_red的值,图像值变为0
第三个参数:upper_red指的是图像中高于这个upper_red的值,图像值变为0
而在lower_red~upper_red之间的值变成255
## TODO: Define the color selection boundaries in HSV values
## TODO: Define the masked area and mask the image
# Don't forget to make a copy of the original image to manipulate
low= np.array([, , ])
up = np.array([, , ])
mask1=cv2.inRange(hsv,low,up)
masked_image1=np.copy(image)
masked_image1[mask1!=]=[,,]
plt.imshow(masked_image1)
<matplotlib.image.AxesImage at 0x7f504624aac8>
使用HSV色彩空间遮罩绿色区域的更多相关文章
- Wiki: HSL和HSV色彩空间
HSL 和 HSV(也叫做 HSB)是对RGB 色彩空间中点的两种有关系的表示,它们尝试描述比 RGB 更准确的感知颜色联系,并仍保持在计算上简单.HSL 表示 hue(色相).saturation( ...
- 将Windows下磁盘出现黑色为分配区域变成绿色区域
在windows下不知什么原因, 有一块磁盘空间F盘就变成了黑色为分配区域. 黑色区域无法用来安装双系统, 网上查阅资料后, 找到了如何将他重新变回绿色区域的2个方法(方法二是自己无意操作成功的). ...
- HSV色彩空间和颜色分量范围
部分来自: https://wenku.baidu.com/view/eb2d600dbb68a98271fefadc.html http://blog.csdn.net/Taily_Duan/art ...
- HSV色彩空间
HSV是把H(色相),S(饱和度),V(亮度)当做色值来定位颜色的空间.色相的取值范围是0~360度,用来表示颜色的类别.其中红色是0度,绿色是120度,蓝色是240度.饱和度的取值范围是0%~100 ...
- RGB转到HSV色彩空间转换
原文链接:https://blog.csdn.net/lsg19920625/article/details/78416649
- 彩色图像--色彩空间 HSI(HSL)、HSV(HSB)
得知DIP文章66日 转载请注明文章出处:http://blog.csdn.net/tonyshengtan ,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管.欢迎共同开发:https://g ...
- 颜色空间RGB与HSV(HSL)的转换
一般的3D编程只需要使用RGB颜色空间就好了,但其实美术人员更多的是使用HSV(HSL),因为可以方便的调整饱和度和亮度. 有时候美术需要程序帮助调整饱和度来达到特定风格的渲染效果,这时候就需要转换颜 ...
- OpenCV笔记(1)(图片读取与现实、色彩空间、基础运算、均值方差、逻辑运算、泛洪填充、均值中值及自定义平滑)
一.图片读取和显示 import cv2 as cv # 图片读取cv.imread(img_path) car_img = cv.imread("car1.png") # 图片显 ...
- HSV转换
HSV中H为色调(Hue).S为饱和度(Saturation).V为亮度(Value)三个分量构成 RGB和HSV颜色空间中进行图像处理的案例,HSV颜色空间分离图像中每一个像素的值或V分量.这个分量 ...
随机推荐
- Struts Tiles框架使用(转)
原文:Struts Tiles框架使用 Tiles框架 ++YONG原创,转载请声明 Tiles框架为创建Web页面提供了一种模板机制,它能将网页的布局和内容分离.它用模板定义网页布局,每个页面模板都 ...
- angular4 自定义表单验证Validator
表单的验证条件有时候满足不了需求就可以自定义验证 唯一要求返回是ValidatorFn export interface ValidatorFn{ (c:AbstractControl):Valida ...
- 2019.9.18 csp-s模拟测试46 反思总结
神志不清: 回去休息(x)继续考试(√) 非常爆炸的一次考试.看错题码完T1回去再看发现自己过于幼稚,T2读完题看着16mb的空间秒出正解然后逻辑出现致命失误100pts->0pts,T3看了一 ...
- hive语句on和where一点小问题
hive join 后面必须=(0.13版本后支持,不支持like,<>),on后面如需加条件语句必须放到where中不然会产生错误结果 (可以一对多,一对一,不可以多对多‘会出现数据翻倍 ...
- 洛谷P4145 上帝造题的七分钟2 / 花神游历各国(重题:洛谷SP2713 GSS4 - Can you answer these queries IV)
题目背景 XLk觉得<上帝造题的七分钟>不太过瘾,于是有了第二部. 题目描述 "第一分钟,X说,要有数列,于是便给定了一个正整数数列. 第二分钟,L说,要能修改,于是便有了对一段 ...
- 【python之路16】lambda表达式
1.lambda表达式,实际是建立一个简易的函数 下面代码中f1和f2表示是相同过程的代码 def f1(args): return args f2 = lambda args:args print( ...
- cf round480D Perfect Groups
题意:给一个序列,对于每一个连续的区间,区间内的数至少分成几个组,使得每个组内的数任意2个相乘是一个完全平方数(包括0). 输出每个组数的个数. $n \leq 5000 , |a_i| \leq 1 ...
- LintCode 合并二维数组
合并两个排序的整数数组A和B变成一个新的数组. 样例 给出A=[1,2,3,4],B=[2,4,5,6],返回 [1,2,2,3,4,4,5,6] 之前想的是用剑指offer里替换空格那种方法 但是把 ...
- git gc干了啥
前几天在写升级项目的时候发现./git/objects/pack/下的idx和pack文件是只读的,用java在windows下删除会抛异常,然后把只读属性改掉就好了. 于是就想弄清楚这两个文件的作用 ...
- JQuery--mouseover()与moseout()的区别
mouseover()与mouseout()区别 普通鼠标移入移出事件 语法: mouseover()/mouseout() 功能: 当鼠标移入/移出到添加事件的元素或其子元素的时候,都会被触发!!m ...