亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

OpenCV+Python--RGB轉(zhuǎn)HSI的實(shí)現(xiàn)

 更新時(shí)間:2019年11月27日 09:56:11   作者:零尾  
今天小編就為大家分享一篇OpenCV+Python--RGB轉(zhuǎn)HSI的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

cv2.cvtColor函數(shù)封裝了各種顏色空間之間的轉(zhuǎn)換,唯獨(dú)沒有RGB與HSI之間的轉(zhuǎn)換,網(wǎng)上查來查去也只有C++或MATLAB版本的,自己要用到python里,所以就寫寫python版本的。

HSI顏色模型是一個(gè)滿足計(jì)算機(jī)數(shù)字化顏色管理需要的高度抽象模擬的數(shù)學(xué)模型。HIS模型是從人的視覺系統(tǒng)出發(fā),直接使用顏色三要素–色調(diào)(Hue)、飽和度(Saturation)和亮度(Intensity,有時(shí)也翻譯作密度或灰度)來描述顏色。

RGB向HSI模型的轉(zhuǎn)換是由一個(gè)基于笛卡爾直角坐標(biāo)系的單位立方體向基于圓柱極坐標(biāo)的雙錐體的轉(zhuǎn)換。基本要求是將RGB中的亮度因素分離,通常將色調(diào)和飽和度統(tǒng)稱為色度,用來表示顏色的類別與深淺程度。在圖中圓錐中間的橫截面圓就是色度圓,而圓錐向上或向下延伸的便是亮度分量的表示。

從RGB空間到HSI空間的轉(zhuǎn)換有多種方法,這里僅說明最為經(jīng)典的幾何推導(dǎo)法。RGB與HSI之間的轉(zhuǎn)換關(guān)系為:

下面直接上代碼:

import cv2
import numpy as np

def rgbtohsi(rgb_lwpImg):
  rows = int(rgb_lwpImg.shape[0])
  cols = int(rgb_lwpImg.shape[1])
  b, g, r = cv2.split(rgb_lwpImg)
  # 歸一化到[0,1]
  b = b / 255.0
  g = g / 255.0
  r = r / 255.0
  hsi_lwpImg = rgb_lwpImg.copy()
  H, S, I = cv2.split(hsi_lwpImg)
  for i in range(rows):
    for j in range(cols):
      num = 0.5 * ((r[i, j]-g[i, j])+(r[i, j]-b[i, j]))
      den = np.sqrt((r[i, j]-g[i, j])**2+(r[i, j]-b[i, j])*(g[i, j]-b[i, j]))
      theta = float(np.arccos(num/den))

      if den == 0:
          H = 0
      elif b[i, j] <= g[i, j]:
        H = theta
      else:
        H = 2*3.14169265 - theta

      min_RGB = min(min(b[i, j], g[i, j]), r[i, j])
      sum = b[i, j]+g[i, j]+r[i, j]
      if sum == 0:
        S = 0
      else:
        S = 1 - 3*min_RGB/sum

      H = H/(2*3.14159265)
      I = sum/3.0
      # 輸出HSI圖像,擴(kuò)充到255以方便顯示,一般H分量在[0,2pi]之間,S和I在[0,1]之間
      hsi_lwpImg[i, j, 0] = H*255
      hsi_lwpImg[i, j, 1] = S*255
      hsi_lwpImg[i, j, 2] = I*255
  return hsi_lwpImg
if __name__ == '__main__':
  rgb_lwpImg = cv2.imread("123.jpg")
  hsi_lwpImg = rgbtohsi(rgb_lwpImg)

  cv2.imshow('rgb_lwpImg', rgb_lwpImg)
  cv2.imshow('hsi_lwpImg', hsi_lwpImg)

  key = cv2.waitKey(0) & 0xFF
  if key == ord('q'):
    cv2.destroyAllWindows()


以上這篇OpenCV+Python--RGB轉(zhuǎn)HSI的實(shí)現(xiàn)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python通過wordcloud庫實(shí)現(xiàn)將單詞生成詞云

    Python通過wordcloud庫實(shí)現(xiàn)將單詞生成詞云

    Python的wordcloud庫是一個(gè)用于生成詞云的Python包,它可以將一段文本中出現(xiàn)頻率高的單詞按其出現(xiàn)頻率大小以及顏色深淺排列成一個(gè)詞云圖形,從而更好地展示文本中的信息,你可以使用wordcloud庫來生成各種類型的詞云,本文就介紹了如何生成心型詞云
    2023-06-06
  • Python構(gòu)建網(wǎng)頁爬蟲原理分析

    Python構(gòu)建網(wǎng)頁爬蟲原理分析

    這篇文章主要給大家講解了構(gòu)建網(wǎng)頁爬蟲的技術(shù)原理以及實(shí)現(xiàn)的邏輯關(guān)系,有興趣的朋友閱讀下吧。
    2017-12-12
  • python使用opencv按一定間隔截取視頻幀

    python使用opencv按一定間隔截取視頻幀

    這篇文章主要為大家詳細(xì)介紹了python使用opencv按一定間隔截取視頻幀,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Python中函數(shù)的參數(shù)類型詳解

    Python中函數(shù)的參數(shù)類型詳解

    這篇文章主要介紹了Python中函數(shù)的參數(shù)類型詳解,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07
  • Python數(shù)據(jù)處理之臨近匹配的實(shí)現(xiàn)詳解

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

    在數(shù)據(jù)處理中,經(jīng)常需要找到最接近給定值的元素或數(shù)據(jù)點(diǎn),這種需求在科學(xué)、工程和統(tǒng)計(jì)分析中非常常見,Python 提供了多種方法來實(shí)現(xiàn)這種臨近匹配,下面就跟隨小編一起學(xué)習(xí)一下吧
    2024-02-02
  • pytorch GPU計(jì)算比CPU還慢的可能原因分析

    pytorch GPU計(jì)算比CPU還慢的可能原因分析

    這篇文章主要介紹了pytorch GPU計(jì)算比CPU還慢的可能原因,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 快速查找Python安裝路徑方法

    快速查找Python安裝路徑方法

    這篇文章主要介紹了快速查找Python安裝路徑方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • python 實(shí)現(xiàn)一次性在文件中寫入多行的方法

    python 實(shí)現(xiàn)一次性在文件中寫入多行的方法

    今天小編就為大家分享一篇python 實(shí)現(xiàn)一次性在文件中寫入多行的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • python3實(shí)現(xiàn)釘釘消息推送的方法示例

    python3實(shí)現(xiàn)釘釘消息推送的方法示例

    這篇文章主要介紹了python3實(shí)現(xiàn)釘釘消息推送的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • python調(diào)用kubernetesAPI簡單使用方法

    python調(diào)用kubernetesAPI簡單使用方法

    這篇文章主要介紹了python調(diào)用kubernetesAPI簡單使用方法,K8s也提供API接口,提供這個(gè)接口的是管理節(jié)點(diǎn)的apiserver組件,下文更多相關(guān)內(nèi)容,需要的小伙伴可以參考一下
    2022-05-05

最新評(píng)論