OpenCV HSV與RGB顏色模型的區別

HSV與RGB顏色模型的區別

HSV(Hue, Saturation, Value)和 RGB(Red, Green, Blue)是兩種不同的顏色表示方式,主要區別如下:

對比項RGBHSV
定義基于紅、綠、藍三原色的混合基于色相(H)、飽和度(S)、明度(V)的直觀描述
適用場景顯示器、數字圖像處理(計算機直接使用)調色板、圖像編輯(更符合人類感知)
顏色調整修改R、G、B分量(不直觀)調整H(顏色)、S(鮮艷度)、V(亮度)更直觀
表示方式三個數值(0-255或者0-1)H(0-360°)、S(0-100%)、V(0-100%)
顏色空間線性疊加(加色模型)圓柱/圓錐模型(更接近人眼感知)
典型應用網頁顏色(#RRGGBB)、計算機圖形Photoshop 調色、顏色選擇器

1. RGB(紅綠藍)

  • 原理:通過 紅(R)、綠(G)、藍(B) 三個分量的不同強度混合成各種顏色。

特點:

  • 加色模型(疊加越亮,如 R+G+B=白色)。
  • 適用于顯示器、攝像頭等電子設備。
  • 調整顏色不直觀(比如想調“更深的紅色”需要同時改 R、G、B)。

示例:

  • 純紅色:(255, 0, 0)
  • 黑色:(0, 0, 0)
  • 白色:(255, 255, 255)

2. HSV(色相、飽和度、明度)

  • 原理:用 色相(H)、飽和度(S)、明度(V) 描述顏色。
    • H(Hue):顏色類型(0°-360°,如 0°=紅,120°=綠,240°=藍)。
    • S(Saturation):顏色鮮艷程度(0%=灰色,100%=純色)。
    • V(Value):亮度(0%=黑色,100%=最亮)。

特點

  • 更符合人咧對顏色的感知,調色更加直觀
  • 適用于設計、美術、圖像處理(如調整“飽和度”或“色相”)

實例

  • 純紅色: (0°, 100%, 100%)
  • 灰色:(0°, 0%, 50%)
  • 深藍色:(240°, 100%, 50%)

3、相互轉換

  • RGB → HSV:計算色相角度、飽和度、亮度。
  • HSV → RGB:根據 H、S、V 計算對應的 R、G、B 值。

代碼實現

import colorsys
# RGB 轉 HSV(輸入范圍 0-1)
h, s, v = colorsys.rgb_to_hsv(1.0, 0.0, 0.0)  # 紅色 → (0.0, 1.0, 1.0)
# HSV 轉 RGB
r, g, b = colorsys.hsv_to_rgb(0.0, 1.0, 1.0)  # 紅色 → (1.0, 0.0, 0.0)
import cv2 as cv
#讀圖
cat = cv.imread('../../images/cat1.png')
#轉灰度
gray = cv.cvtColor(cat, cv.COLOR_BGR2GRAY)
print(gray.shape)
cv.imshow('gray', gray)
#轉HSV
hsv = cv.cvtColor(cat, cv.COLOR_BGR2HSV)
cv.imshow('hsv', hsv)
#轉RGB
rgb = cv.cvtColor(cat, cv.COLOR_BGR2RGB)
cv.imshow('rgb', rgb)
cv.waitKey(0)
cv.destroyAllWindows()

4、如何選擇

  • 用 RGB:編程、網頁設計、顯示器顯示。
  • 用 HSV:調色、圖像處理(如調整亮度/飽和度)、美術設計。

HSV 的優勢在于 更符合人類直覺,比如:

  • 想調“淺藍色”?增加 V(明度)。

  • 想調“更鮮艷的綠色”?增加 S(飽和度)。

  • 想換顏色?直接改 H(色相)。

而 RGB 需要同時調整多個分量,不夠直觀。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/92292.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/92292.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/92292.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

具有柔性關節的機械臂matlab仿真

柔性關節機械臂MATLAB仿真方案,包含動力學建模、控制器設計和可視化分析。該方案基于拉格朗日方程建立柔性關節模型,并實現了PD控制、滑模控制和自適應控制三種控制策略。 MATLAB仿真 %% 柔性關節機械臂仿真 - 完整系統 % 作者: MATLAB技術助手 % 日期: …

數據結構—隊列和棧

1.二級指針的使用二級指針: 1. 在被調函數中,想要修改主調函數中的指針變量,需要傳遞該指針變量的地址,形參用二級指針接收。 2.指針數組的數組名是一個二級指針,指針數組的數組名作為參數傳遞時,可用二級指…

均線:從市場脈搏到量子計算的時空密碼

一部跨越百年的技術分析進化史,揭示金融市場的數學本質 引言:金融市場的永恒羅盤 在華爾街百年風云中,一個簡單的數學工具始終閃耀著智慧光芒——移動平均線(Moving Average)。從杰西利弗莫爾的手繪圖表到文藝復興科技的量子模型,均線系統完成了從經驗工具到科學框架的驚…

Python 通過Playwright+OpenCV破解滑動驗證碼 實例

由于公司最近需要對接某業務系統,涉及到部分數據需要提交至其它平臺業務系統,只有其它平臺賬戶,沒有接口,因此做此開發。首先通過OpenCV計算出驗證驗證碼滑塊距離,根據距離,使用 Playwright 利用滑動距離模…

山東省天地圖API申請并加載到QGIS和ArcGIS Pro中

目的:在QGIS/ArcGIS Pro中加載山東省不同時期的歷史影像1、申請API 山東省天地圖的API和國家天地圖的API不通用,需要單獨申請。 https://shandong.tianditu.gov.cn/ 打開本地服務資源找到影像的詳情頁 點擊申請地址按照下面的步驟一步一步來,…

qt窗口--02

文章目錄qt窗口--02QMessageBoxQColorDialogQFileDialogQFontDialogQInputDialog、結語很高興和大家見面,給生活加點impetus!!開啟今天的編程之路!! 作者:?( ‘ω’ )?260 我的專欄:qt&#…

Linux seLinux

Linux seLinux 1、什么是selinux,security enhanced linux–安全加強的linux。 是由美國國家安全局開發的以及歷史。selinux之前是基于自主存取控制方法DAC, 只要符合權限即可,通過suid和sgid特殊權限存在有一定的安全隱患, 甚至一…

Linux: NFS 服務部署與autofs自動掛載的配置

Linux: NFS 服務部署與autofs自動掛載的配置NFS(Network File System,網絡文件系統)是一種基于 TCP/IP 協議的網絡文件共享協議,允許不同主機在網絡中共享文件資源,實現跨主機的文件訪問與管理,…

【深度學習②】| DNN篇

0 序言 本文將系統介紹基于PyTorch的深度神經網絡(DNN)相關知識,包括張量的基礎操作、DNN的工作原理、實現流程,以及批量梯度下降、小批量梯度下降方法和手寫數字識別案例。通過學習,你將掌握DNN的核心概念、PyTorch實…

Xcode 26 如何在創建的 App 包中添加特定的目錄

功能需求 在某些情況下,我們需要將特定文件放在 Xcode 編譯鏈接后 App 包里的指定目錄中,比如將 AI 大模型相關文件放在它們對應名稱的目錄中: 正常情況下,Xcode 會將項目目錄中的所有文件都平鋪放到 App 包的根目錄里。那么,要如何形成上面這種文件目錄層級呢? 在本篇…

linux-系統性能監控

linux-系統性能監控一、cpu1.1 查看cpu的信息1.2 cpu性能指標1.3 編寫監控cpu使用率的腳本1.4 查找出使用cpu最高的10個進程二、內存2.1 查看內存信息2.2 交換(swap)分區2.2.1 查看交換分區的積極程度2.2.2 查看交換分區的大小2.2.3 管理交換分區2.3 編寫…

AgxOrin平臺JetPack5.x版本fix multi-cam race condition 補丁

本文包含三個針對NVIDIA Linux驅動程序的補丁修復: 多攝像頭競爭條件修復 在capture-ivc驅動中新增信號量機制,解決多攝像頭同時操作時的競爭條件問題(Bug 4425972)。主要修改包括在通道上下文結構中添加信號量,并在通道ID通知和取消注冊時進行信號量操作。 內存泄漏修復…

【Go】P3 Go語言程序結構

Go語言程序結構Go語言程序結構命名規則與編程慣例核心規則四種聲明語句詳解var聲明:變量聲明const聲明:常量聲明type聲明:類型定義func聲明:函數聲明簡短變量聲明(:)使用規則和限制指針:安全的內存地址操作基本概念和操…

【機器學習深度學習】知識蒸餾實戰:讓小模型擁有大模型的智慧

目錄 引言:模型壓縮的迫切需求 一、知識蒸餾的核心原理 1.1 教師-學生模式 1.2 軟目標:知識傳遞的關鍵 1.3 蒸餾損失函數 二、實戰:Qwen模型蒸餾實現 2.1 環境配置與模型加載 2.2 蒸餾損失函數實現 2.3 蒸餾訓練流程 2.4 訓練優化技…

基于MCP提示構建工作流程自動化的實踐指南

引言 在現代工作和生活中,我們經常被各種重復性任務所困擾——從每周的膳食計劃到代碼審查反饋,從文檔更新到報告生成。這些任務雖然不復雜,卻消耗了大量寶貴時間。MCP(Model Context Protocol)提示技術為解決這一問題…

apache-tomcat-11.0.9安裝及環境變量配置

一、安裝從官網上下載apache-tomcat-11.0.9,可以下載exe可執行文件版本,也可以下載zip版本,本文中下載的是zip版本。將下載的文件解壓到指定目錄;打開tomcat安裝目錄下“\conf\tomcat-users.xml”文件;輸入以下代碼,pa…

Java 大視界 -- Java 大數據機器學習模型在電商用戶生命周期價值評估與客戶關系精細化管理中的應用(383)

Java 大視界 -- Java 大數據機器學習模型在電商用戶生命周期價值評估與客戶關系精細化管理中的應用(383)引言:正文:一、電商用戶運營的 “糊涂賬”:不是所有客戶都該被討好1.1 運營者的 “三大錯覺”1.1.1 錯把 “過客…

豆包新模型與PromptPilot工具深度測評:AI應用開發的全流程突破

目錄引言一、豆包新模型技術解析1.1 豆包新模型介紹1.2 核心能力突破1.2.1 情感交互能力1.2.2 推理與編碼能力二、PromptPilot工具深度測評2.1 PromptPilot介紹2.2 工具架構與核心功能2.3 一個案例講通:市場調研報告2.3.1 生成Prompt2.3.2 批量集生成2.3.3 模擬數據…

【代碼隨想錄day 12】 力扣 144.145.94.前序遍歷中序遍歷后序遍歷

視頻講解:https://www.bilibili.com/video/BV1Wh411S7xt/?vd_sourcea935eaede74a204ec74fd041b917810c 文檔講解:https://programmercarl.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E9%80%92%E5%BD%92%E9%81%8D%E5%8E%86.html#%E5%85%B6%E4%BB%96%E8%A…

【Unity】 HTFramework框架(六十七)UDateTime可序列化日期時間(附日期拾取器)

更新日期:2025年8月6日。 Github 倉庫:https://github.com/SaiTingHu/HTFramework Gitee 倉庫:https://gitee.com/SaiTingHu/HTFramework 索引一、UDateTime可序列化日期時間1.定義UDateTime字段2.日期拾取器(編輯器)3…