Opencv-python 色相饱和度(HLS)

import cv2 as cv
import numpy as np# 全局变量
g_hls_h = []  # 图片分量 hls
g_hls_l = []
g_hls_s = []
# 滑动设置值
g_diff_h, g_diff_l, g_diff_s = 0, 0, 0# 修改图片各分量 组合成新图片
def change_hls():global g_hls_h, g_hls_l, g_hls_s, g_diff_h, g_diff_l, g_diff_s# h分量hls_hf = g_hls_h.astype(np.float)hls_hf += g_diff_hhls_hf[hls_hf > 180] -= 180  # 超过180hls_hf[hls_hf < 0] += 180  # 小于0new_hls_h = hls_hf.astype("uint8")# l分量hls_lf = g_hls_l.astype(np.float)hls_lf += g_diff_lhls_lf[hls_lf < 0] = 0hls_lf[hls_lf > 255] = 255new_hls_l = hls_lf.astype("uint8")# s分量hls_ls = g_hls_s.astype(np.float)hls_ls += g_diff_shls_ls[hls_ls < 0] = 0hls_ls[hls_ls > 255] = 255new_hls_s = hls_ls.astype("uint8")# 重新组合新图片 并转换成BGR图片new_bgr = cv.cvtColor(cv.merge([new_hls_h, new_hls_l, new_hls_s]), cv.COLOR_HLS2BGR)cv.imshow("image", new_bgr)# h分量 值修改
def on_value_h(a):global g_diff_hvalue = cv.getTrackbarPos("value_h", "image")value = (value - 180)g_diff_h = valuechange_hls()# l分量 值修改
def on_value_l(a):global g_diff_lvalue = cv.getTrackbarPos("value_l", "image") * 2value -= 255g_diff_l = valuechange_hls()# s分量 值修改
def on_value_s(a):global g_diff_svalue = cv.getTrackbarPos("value_s", "image") * 2value -= 255g_diff_s = valuechange_hls()def main():global g_hls_h, g_hls_l, g_hls_s# 加载图片img_org = cv.imread("./img01.jpg")# hls分量拆分hls = cv.cvtColor(img_org, cv.COLOR_BGR2HLS)g_hls_h = hls[:, :, 0]g_hls_l = hls[:, :, 1]g_hls_s = hls[:, :, 2]print(img_org.shape)# 滑动条创建、设置初始值cv.namedWindow("image")cv.createTrackbar("value_h", "image", 0, 360, on_value_h)cv.createTrackbar("value_l", "image", 0, 255, on_value_l)cv.createTrackbar("value_s", "image", 0, 255, on_value_s)cv.setTrackbarPos("value_h", "image", 180)cv.setTrackbarPos("value_l", "image", 127)cv.setTrackbarPos("value_s", "image", 127)# 退出while True:key = cv.waitKey(50) & 0xFFif key == 27:  # 退出breakcv.destroyAllWindows()if __name__ == '__main__':main()

Opencv-python 色相饱和度(HLS)相关推荐

  1. 用OpenCV实现Photoshop算法(七): 调整色相饱和度

    系列文章: 用OpenCV实现Photoshop算法(一): 图像旋转 用OpenCV实现Photoshop算法(二): 图像剪切 用OpenCV实现Photoshop算法(三): 曲线调整 用Ope ...

  2. opencv python 从摄像头获取视频、帧率、分辨率等属性设置和使用

    opencv python 从摄像头获取视频.帧率.分辨率等属性设置和使用 文章目录: 1,为了获取视频,你应该创建一个 VideoCapture 对象.他的参数可以是设备的索引号,或者是一个视频文件 ...

  3. OpenCV+Python 彩色图片的 BGR、灰度图、HSV分量图显示的程序

    OpenCV+Python 彩色图片的 BGR.灰度图.HSV分量图显示的程序 介绍 OpenCV+Python 使用openCV中的split()函数和 cvtColor()函数提取一张彩色图片的B ...

  4. OpenCV+python:Canny边缘检测算法

    1,边缘处理 图像边缘信息主要集中在高频段,通常说图像锐化或检测边缘,实质就是高频滤波.我们知道微分运算是求信号的变化率,具有加强高频分量的作用. 在空域运算中来说,对图像的锐化就是计算微分.由于数字 ...

  5. OpenCV Python在计算机视觉中的应用

    OpenCV Python教程 在这篇文章中,我们将使用Python中的OpenCv来涵盖计算机视觉的各个方面.OpenCV长期以来一直是软件开发的重要组成部分. 什么是计算机视觉? 我们考虑一个场景 ...

  6. OpenCV Python教程(2、图像元素的访问、通道分离与合并)

    OpenCV Python教程之图像元素的访问.通道分离与合并 转载请详细注明原作者及出处,谢谢! 访问像素 像素的访问和访问numpy中ndarray的方法完全一样,灰度图为: [python] v ...

  7. python中import cv2遇到的错误及安装方法_独家利用OpenCV,Python和Ubidots来构建行人计数器程序(附代码amp;解析)...

    作者:Jose Garcia 翻译:吴振东 校对:张一豪 本文约4000字,建议阅读14分钟. 本文将利用OpenCV,Python和Ubidots来编写一个行人计数器程序,并对代码进行了较为详细的讲 ...

  8. 如何把OpenCV Python获取的图像传递到C层处理

    原文:https://blog.csdn.net/yushulx/article/details/52788051 用OpenCV Python来开发,如果想要用到一些C/C++的图像处理库,就需要创 ...

  9. openCV—Python(6)—— 图像算数与逻辑运算

    openCV-Python(6)-- 图像算数与逻辑运算 一.函数简介 1.add-图像矩阵相加 函数原型:add(src1, src2, dst=None, mask=None, dtype=Non ...

最新文章

  1. linux 密码文件 /etc/shadow md5,SHA256,SHA512 破解
  2. java jsp 脚本 声明 表达式 简介
  3. Drupal8 社区文档之在Drupal中,查看网页的编辑一个页面的几乎是相同的
  4. 数据库(四)之数据库表管理
  5. C语言strchr()函数(字符串中查找子字符)
  6. 《系统集成项目管理工程师》必背100个知识点-82风险的特性
  7. 【数据结构与算法】之深入解析“石子游戏III”的求解思路与算法示例
  8. Condition.signal
  9. 大归因+小归因,先崛网络帮你还原SEM的真实价值
  10. 深拷贝、浅拷贝以及引用传递和按值传递的区别与联系
  11. [JavaWeb-JavaScript]JavaScript_Array数组对象
  12. java8(2)--- Stream API
  13. DirectoryInfo类
  14. 微信小程序云开发教程-互联网软件的运作模式
  15. 基于matlab的直流调速仿真系统代码,基于Matlab的双闭环直流调速系统仿真研究毕业设计论文...
  16. JVM(6)之 二次标记
  17. 【品牌DTC增长力】从AIPL模型看策略趋势
  18. Python数据分析与实战挖掘
  19. 英特尔、高通等多家科技巨头禁止员工与华为交流!
  20. 王者苹果服务器转安卓系统,王者荣耀苹果用户可以转?王者荣耀苹果用户转安卓的方法教程...

热门文章

  1. 【ES】ES、JS之间的关系
  2. MySQL基础知识-MySQL概述安装,单表增删改查,函数,约束,多表查询,事物
  3. 均值滤波,中值滤波,最大最小值滤波
  4. H5如何实现图文一行分布且图片在左侧而文字在右侧
  5. granger Z-score问题
  6. ufo帧率测试网站_手机相机拍摄的视频帧率的测试方法
  7. pyrouge和rouge在Linux上的安装方法以及结果比较
  8. 如何在服务里面删除应用(比如说删除掉服务里面的tomcat)?
  9. Annex-B和AVCC
  10. C++中fstream 的使用一