欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

OpenCV基礎HSV顏色空間*args與**kwargs滑動條傳參問題

 更新時間:2021年10月16日 15:47:47   作者:_睿智_  
這篇文章主要介紹了OpenCV基礎中HSV顏色空間*args與**kwargs滑動條傳參問題的詳細解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助

一、基礎理論

HSV:HSV是一種為了加快調(diào)色效率,且易于理解的概念。

Hue:色相(具體的顏色)

Saturation:飽和度、色彩純凈度

Value:明度

1、Hue(色相)

Hue:色相(具體的顏色)

2、Value(明度)

明度:色彩的明亮程度,單通道亮度(并不等同于整體發(fā)光量)。

(明度越高越白,越低越黑,一般提高明度會同時提高R、G、B三通道的數(shù)值)

3、Saturation(飽和度)

Saturation:飽和度、色彩純度。(越低越灰,越高越純)

(一般調(diào)高飽和度會降低RGB中相對較低的數(shù)值,凸顯主要顏色的純度。 )

B站視頻講解:

短動畫慢語速1分鐘講清影視調(diào)色中色彩形成原理基礎——RGB與HSV

二、hsv三通道及單通道效果

三、*args && **kwargs

*args:傳入?yún)?shù)未知,且不需要知道參數(shù)名稱。

**args:傳入?yún)?shù)未知,但需要知道參數(shù)名稱。

四、滾動條控制h、s、v(min && max)

1、創(chuàng)建滾動條

API

CV_EXPORTS int createTrackbar(const string& trackbarname, const string& winname,
                              int* value, int count,
                              TrackbarCallback onChange = 0,
                              void* userdata = 0);

形式參數(shù)一trackbarname:滑動空間的名稱;

形式參數(shù)二winname:滑動空間用于依附的圖像窗口的名稱;

形式參數(shù)三value:初始化閾值;

形式參數(shù)四count:滑動控件的刻度范圍;

形式參數(shù)五TrackbarCallback:是回調(diào)函數(shù),其定義如下

typedef void (CV_CDECL *TrackbarCallback)(int pos, void* userdata);
# 3、創(chuàng)建h、s、v滾動條
    cv2.createTrackbar('hmin', 'h', 12, 179, Renew)
    cv2.createTrackbar('hmax', 'h', 37, 179, Renew)
    cv2.createTrackbar('smin', 's', 12, 179, Renew)
    cv2.createTrackbar('smax', 's', 37, 179, Renew)
    cv2.createTrackbar('vmin', 'v', 12, 179, Renew)
    cv2.createTrackbar('vmax', 'v', 37, 179, Renew)

2、回調(diào)函數(shù) -- 閾值設置

API

inRange()

主要是將在兩個閾值內(nèi)的像素值設置為白色(255),而不在閾值區(qū)間內(nèi)的像素值設置為黑色(0),該功能類似于之間所講的雙閾值化操作。

    void inRange(InputArray src, InputArray lowerb,
                              InputArray upperb, OutputArray dst);

參數(shù)1:輸入要處理的圖像,可以為單通道或多通道。

參數(shù)2:包含下邊界的數(shù)組或標量。

參數(shù)3:包含上邊界數(shù)組或標量。

參數(shù)4:輸出圖像,與輸入圖像src 尺寸相同且為CV_8U 類型。

(注:dst輸出二值化之后的圖像)

# 1、獲取滑動條反饋值
    hmin = cv2.getTrackbarPos('hmin', 'h')
    hmax = cv2.getTrackbarPos('hmax', 'h')
    smin = cv2.getTrackbarPos('smin', 's')
    smax = cv2.getTrackbarPos('smax', 's')
    vmin = cv2.getTrackbarPos('vmin', 'v')
    vmax = cv2.getTrackbarPos('vmax', 'v')
 
    # 2、設置閾值(inRange:在閾值(min,max)之內(nèi),設置為白色;在閾值之外,設置為黑色)
    h_thresh = cv2.inRange(np.array(h), np.array(hmin), np.array(hmax))
    s_thresh = cv2.inRange(np.array(s), np.array(smin), np.array(smax))
    v_thresh = cv2.inRange(np.array(v), np.array(vmin), np.array(vmax))

3、回調(diào)函數(shù) -- 感興趣值

API

bitwise_and()

圖像的與運算主要用于獲取某個圖像中感興趣的部分,是針對兩個圖像矩陣數(shù)組或一個數(shù)組與標量的按位與。

# 3、獲取感興趣二值(與運算)
    interest = cv2.bitwise_and(h_thresh, cv2.bitwise_and(s_thresh, v_thresh))

總代碼

# HSV顏色空間與滑動條(*args && **args)
import cv2
import numpy as np
# 回調(diào)函數(shù)
# *args:傳入?yún)?shù)未知,且不需要知道參數(shù)名稱
# **args:傳入?yún)?shù)未知,但需要知道參數(shù)名稱
def HSV_CallBack(*args):
    # 1、獲取滑動條反饋值
    hmin = cv2.getTrackbarPos('hmin', 'h_binary')
    hmax = cv2.getTrackbarPos('hmax', 'h_binary')
    smin = cv2.getTrackbarPos('smin', 's_binary')
    smax = cv2.getTrackbarPos('smax', 's_binary')
    vmin = cv2.getTrackbarPos('vmin', 'v_binary')
    vmax = cv2.getTrackbarPos('vmax', 'v_binary')
    # 2、設置閾值(inRange:在閾值(min,max)之內(nèi),設置為白色;在閾值之外,設置為黑色)
    h_binary = cv2.inRange(np.array(h), np.array(hmin), np.array(hmax))
    s_binary = cv2.inRange(np.array(s), np.array(smin), np.array(smax))
    v_binary = cv2.inRange(np.array(v), np.array(vmin), np.array(vmax)) 
    # 3、獲取感興趣二值(與運算)
    binary = cv2.bitwise_and(h_binary, cv2.bitwise_and(s_binary, v_binary)) 
    # 4、顯示
    cv2.imshow('h_binary', h_binary)
    cv2.imshow('s_binary', s_binary)
    cv2.imshow('v_binary', v_binary)
    cv2.imshow('binary', binary) 
def Show_HSV():
    global hsv, h, s, v
    # 0、創(chuàng)建窗口
    cv2.namedWindow('h_binary')
    cv2.namedWindow('s_binary')
    cv2.namedWindow('v_binary')
    # 1、獲取hsv圖片
    hsv = cv2.cvtColor(img, cv2.COLOR_RGB2HSV)
    cv2.imshow('hsv', hsv)
    # 2、獲取h、s、v三通道圖片
    h, s, v = cv2.split(hsv)
    # 3、創(chuàng)建h、s、v滾動條
    cv2.createTrackbar('hmin', 'h_binary', 12, 179, HSV_CallBack)
    cv2.createTrackbar('hmax', 'h_binary', 37, 179, HSV_CallBack)
    cv2.createTrackbar('smin', 's_binary', 12, 179, HSV_CallBack)
    cv2.createTrackbar('smax', 's_binary', 37, 179, HSV_CallBack)
    cv2.createTrackbar('vmin', 'v_binary', 12, 179, HSV_CallBack)
    cv2.createTrackbar('vmax', 'v_binary', 37, 179, HSV_CallBack)
    HSV_CallBack()
if __name__ == '__main__':
    global img
    img = cv2.imread('Resource/test.jpg')
    cv2.imshow('img', img)
    # 顯示h、s、v
    Show_HSV() 
    cv2.waitKey(0)

參考資料

短動畫慢語速1分鐘講清影視調(diào)色中色彩形成原理基礎——RGB與HSV_嗶哩嗶哩_bilibili

​​​Python編程中*args與**kwargs區(qū)別作用詳解

createTrackbar使用方法及步驟

以上就是OpenCV基礎HSV顏色空間*args與**args滑動條傳參問題的詳細內(nèi)容,更多關于HSV顏色空間*args與**args滑動條傳參的資料請關注腳本之家其它相關文章!

相關文章

  • Python使用defaultdict解決字典默認值

    Python使用defaultdict解決字典默認值

    本文主要介紹了Python使用defaultdict解決字典默認值,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • 如何基于matlab相機標定導出xml文件

    如何基于matlab相機標定導出xml文件

    這篇文章主要介紹了如何基于matlab相機標定導出xml文件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • Python格式化輸出的幾種匯總

    Python格式化輸出的幾種匯總

    這篇文章主要介紹了Python格式化輸出的幾種匯總,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 用python 批量操作redis數(shù)據(jù)庫

    用python 批量操作redis數(shù)據(jù)庫

    這篇文章主要介紹了如何用python 批量操作redis數(shù)據(jù)庫,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下
    2021-03-03
  • Python調(diào)用釘釘自定義機器人的實現(xiàn)

    Python調(diào)用釘釘自定義機器人的實現(xiàn)

    這篇文章主要介紹了Python調(diào)用釘釘自定義機器人的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • 如何將 awk 腳本移植到 Python

    如何將 awk 腳本移植到 Python

    腳本是解決問題的有效方法,而 awk 是編寫腳本的出色語言。它特別擅長于簡單的文本處理,它可以帶你完成配置文件的某些復雜重寫或目錄中文件名的重新格式化。這篇文章主要介紹了如何把 awk 腳本移植到 Python,需要的朋友可以參考下
    2019-12-12
  • 對Python正則匹配IP、Url、Mail的方法詳解

    對Python正則匹配IP、Url、Mail的方法詳解

    今天小編就為大家分享一篇對Python正則匹配IP、Url、Mail的方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python數(shù)據(jù)處理之臨近匹配的實現(xiàn)詳解

    Python數(shù)據(jù)處理之臨近匹配的實現(xiàn)詳解

    在數(shù)據(jù)處理中,經(jīng)常需要找到最接近給定值的元素或數(shù)據(jù)點,這種需求在科學、工程和統(tǒng)計分析中非常常見,Python 提供了多種方法來實現(xiàn)這種臨近匹配,下面就跟隨小編一起學習一下吧
    2024-02-02
  • 詳解如何在pyqt中通過OpenCV實現(xiàn)對窗口的透視變換

    詳解如何在pyqt中通過OpenCV實現(xiàn)對窗口的透視變換

    這篇文章主要介紹了如何在pyqt中通過OpenCV實現(xiàn)對窗口的透視變換,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • python利用json和pyecharts畫折線圖實例代碼

    python利用json和pyecharts畫折線圖實例代碼

    這篇文章主要介紹了python利用json和pyecharts畫折線圖實例,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12

最新評論