OpenCV-Python小应用(七):获取图片ROI的HSV取值范围

OpenCV-Python小应用(七):获取图片ROI的HSV取值范围

    • 前言
    • 前提条件
    • 实验环境
    • 获取图片ROI的HSV取值范围
    • 参考文献

前言

  • 本文是个人使用OpenCV-Python的应用案例,由于水平有限,难免出现错漏,敬请批评改正。
  • 更多精彩内容,可点击进入OpenCV-Python小应用专栏或我的个人主页查看

前提条件

  • 熟悉Python

实验环境

  • Python 3.6.13 (面向对象的高级语言)
  • OpenCV 3.4.10(python第三方库)pip3 install opencv-python==3.4.10.37

获取图片ROI的HSV取值范围

  • HSV颜色空间相关知识点,可查阅OpenCV-Python快速入门(四):色彩空间
  • OpenCV中,各种颜色HSV值的参考值,如下图所示。
    OpenCV-Python小应用(七):获取图片ROI的HSV取值范围_第1张图片

OpenCV-Python小应用(七):获取图片ROI的HSV取值范围_第2张图片

# 导入库
import cv2
import numpy as np
import sys
from PIL import Image

# 图像显示函数
def show(name, img):
    cv2.namedWindow(name, 0)  # 用来创建指定名称的窗口,0表示CV_WINDOW_NORMAL
    # cv2.resizeWindow(name, img.shape[1], img.shape[0]); # 设置宽高大小为640*480
    cv2.imshow(name, img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

if __name__ == "__main__":
    # 读取图片
    img = cv2.imread("1.png")
    # show('img', img)
    # print(img.shape)  # (h,w,channel)
    img_ROI = img[80:119, 173:212]  # y,x -> h,w
    # show('img_ROI', img_ROI)
    # print(img_ROI.shape)
    # BGR -> HSV
    img_hsv = cv2.cvtColor(img_ROI, cv2.COLOR_BGR2HSV)
    # HSVmin
    Hmin, Smin, Vmin = min(img_hsv[:, :, 0][0]), min(img_hsv[:, :, 1][0]), min(img_hsv[:, :, 2][0])
    # HSVmax
    Hmax, Smax, Vmax = max(img_hsv[:, :, 0][0]), max(img_hsv[:, :, 1][0]), max(img_hsv[:, :, 2][0])
    print('Hmin,Smin,Vmin:', Hmin, Smin, Vmin)
    print('Hmax,Smax,Vmax:', Hmax, Smax, Vmax)
Hmin,Smin,Vmin: 78 58 12
Hmax,Smax,Vmax: 90 255 148

参考文献

[1] https://opencv.org/
[2] 李立宗. OpenCV轻松入门:面向Python. 北京: 电子工业出版社,2019

  • 更多精彩内容,可点击进入OpenCV-Python小应用专栏或我的个人主页查看

你可能感兴趣的:(opencv,python,计算机视觉)