之前我们已经知道怎么检测蓝幕背景了,但是这种检测方法是有前提的,就是场景光线要好,而且蓝幕的颜色要十分连贯,如果光线发生变化,有阴影或者光线太亮,怎办呢?
显然这个时候简单的颜色阈值已经不能适用了,那就转换一种颜色表示方式,其实 表示图像颜色的方法还有很多,不仅是我们经常用的红绿蓝这样的颜色空间,还有一种颜色空间是 HSV 三个字母分别代表色相、饱和度和明度,而 HLS 则是指色相、亮度和饱和度模型。这几个就是图像处理中最常用的几种颜色空间了。
接下来,我们就来用HSV颜色空间来进行图像处理,我们要把每个像素的明度,即 V分量分离出来,这个分量受照明条件的影响最大,而 H 通道则基本不受阴影或过高亮度的影响,如果我们依靠这个通道 舍弃 V 通道的信息,那就能对彩色物体进行检测 而且效果会比在 RGB 颜色空间中更为可靠。
接下来,我们拿一张气球的图片,来做实验,目标是分离出来粉色的气球,代码如下:

## Import resources and display image
import numpy as np
import matplotlib.pyplot as plt
import cv2%matplotlib inline# Read in the image
image = cv2.imread('Pictures/water_balloons.jpg')# Make a copy of the image
image_copy = np.copy(image)     #备份图片# Change color to RGB (from BGR)
image = cv2.cvtColor(image_copy, cv2.COLOR_BGR2RGB)  #转换为RGBplt.imshow(image)# RGB channels
r = image[:,:,0]     #隔离出R通道
g = image[:,:,1]     #隔离出G通道
b = image[:,:,2]     #隔离出B通道f, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(20,10))  #分别显示出来ax1.set_title('Red')                                       #标题
ax1.imshow(r, cmap='gray')                                 #灰色图像ax2.set_title('Green')
ax2.imshow(g, cmap='gray')ax3.set_title('Blue')
ax3.imshow(b, cmap='gray')# Convert from RGB to HSV  将RGB转换为HSV
hsv = cv2.cvtColor(image, cv2.COLOR_RGB2HSV)# HSV channels
h = hsv[:,:,0]   #h通道
s = hsv[:,:,1]   #s通道
v = hsv[:,:,2]   #v通道f, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(20,10))ax1.set_title('Hue')
ax1.imshow(h, cmap='gray')ax2.set_title('Saturation')
ax2.imshow(s, cmap='gray')ax3.set_title('Value')
ax3.imshow(v, cmap='gray')## Define pink and hue selection thresholds# Define our color selection criteria in HSV values
lower_hue = np.array([160,0,0])
upper_hue = np.array([180,255,255])# Define our color selection criteria in RGB values
lower_pink = np.array([180,0,100])
upper_pink = np.array([255,255,230])## Mask the image
# Define the masked area in RGB space
mask_rgb = cv2.inRange(image, lower_pink, upper_pink)# mask the image
masked_image = np.copy(image)
masked_image[mask_rgb==0] = [0,0,0]# Vizualize the mask
plt.imshow(masked_image)# Now try HSV!# Define the masked area in HSV space
mask_hsv = cv2.inRange(hsv, lower_hue, upper_hue)# mask the image
masked_image = np.copy(image)
masked_image[mask_hsv==0] = [0,0,0]# Vizualize the mask
plt.imshow(masked_image)

效果图





是不是很明显的把只要是粉色的部分都提取出来了,其中还有一些小点,可以通过修改阈值来进行调整~

光照下的图片的提取(以光照下的彩色气球为例)相关推荐

  1. java获得src文件夹下的图片和 获得resource目录下的文件

    java获得src文件夹下的图片和 获得resource目录下的文件 1 获得src文件夹下的图片 文件位置 获得url代码 URL url= getClass().getClassLoader(). ...

  2. python去除图像光照不均匀_【转载】光照不均匀图像分割技巧

    1. 案例描述 在数字图像处理中,图像分割是很关键的一步,当图像质量较好,光照很均匀的时候只需用全局阈值的方法就能很完美地完成图像分割任务,但是有些时候会遇到光照不均匀的现象,这个时候就需要用一些技巧 ...

  3. java imageio删除图片_Java 提取、替换、删除PDF文档中的图片

    在一篇文章里,配有与文本信息相得益彰的图片,不仅能够活跃与美化版面,同时也有利于提高文章的可读性和阅读效果,从而增强其吸引力.同时,对文档中已存在图片的处理也尤为重要.本文将通过使用Java程序来演示 ...

  4. vba htm转成图片_提取1000页PPT的图片,同事花了两小时,我只花了两分钟

    临下班前老板又双叒搞临时任务,丢来几份几百页的PPT,让我们把里面的图片都提取出来,同事一边哀嚎一边埋头苦干,疯狂地另存为,我瞥了一眼, 目测她要两小时才能搞定. 其实不用那么麻烦,提取图片这种小事情 ...

  5. 怎么从扫描的PDF文档/图片里提取文字

    时间浪费在打字上可不好! 关于"怎么从扫描的PDF文档/图片里提取文字",我集思广益,得到如下结果: 首先是这里的一篇文章:http://hi.baidu.com/d_zzn047 ...

  6. PDF图片怎么提取?看完这篇你就会了

    我们经常都会以PDF的形式进行各种文档文件的保存,因为它便于我们在不同的设备上查阅以及打印.有时候我们会需要将PDF的图片进行提取,这时候各位小伙伴都会怎么操作呢?是一张张图片进行复制吗?如果图片多的 ...

  7. [深度学习 - 实战项目] CRAFTCRNN_seq2seq图片文字提取

    图片文字提取项目 检测网络:CRAFT,基于字符区域感知的文本检测: CRAFT源码:https://github.com/clovaai/CRAFT-pytorch 识别网络:crnn+seq2se ...

  8. 之于图片主色调提取算法

    图片颜色量化算法, 又称之为图片主色调提取算法. 也可以称之为调色板提取算法. 比较常见的应用就是用于提取图片的主色调用于上色配色, 当然也可以用于图像分割. 算法的主要目的是从真彩色图像所能表现的大 ...

  9. docx文档怎么排列图片_PDF文档中的图片怎么提取出来?不得不说这两个方法太好用了...

    原标题:PDF文档中的图片怎么提取出来?不得不说这两个方法太好用了 目前PDF文档被大家广泛应用,主要是因为PDF文档在传输和转换的过程中比较稳定,所以PDF格式几乎是办公文件格式的首选.大家都知道P ...

最新文章

  1. 怎样在表格中选出同一类_超超超超实用的年会策划执行表格模板合集!
  2. 十步图解CSS的position
  3. api接口rsa加密
  4. 英雄联盟手游主播否认部分英雄后期的作用,难道阿卡丽没未来?
  5. 如何学习 azure_Azure的监督学习
  6. 机器学习——支持向量机SVM之多分类问题
  7. LeetCode每日打卡 - 汉明距离
  8. 让我们拭目以待的5z20
  9. Boring Partition(CF-239D)
  10. FileFilter 遍历某个目录下文件名含有某个字符的文件
  11. cmake 简介-初识
  12. WIN7的便签使用快捷键
  13. 如何给计算机安装驱动程序,电脑系统怎么安装驱动程序
  14. K3 Cloud 常用数据表整理
  15. 多线程输出奇数和偶数
  16. win10下自动运行python程序脚本
  17. Glide4 设置默认图片和错误图片,即设置占位图
  18. visio和office安装冲突
  19. Hadoop Failover
  20. Hej Stylus for Mac(手写笔画图工具)

热门文章

  1. python call函数
  2. 直播视频网站源码,翻页时钟FlipClock的使用和样式自定义
  3. R语言—岭回归实现函数
  4. 55. 跳跃游戏(JS实现)
  5. PPOCRLabel 半标注工具全平台安装使用
  6. X浏览器是一款真正好用又安全的浏览器,安全上网首选.
  7. 上海开放大学大学英语计分作业二答案
  8. OnClose和OnDestroy
  9. 通过addroutes动态添加路由
  10. 阿里DNS:一种不断变化前缀域名攻击检测方法