電腦中的顏色IX——總述:RGB和HSV快速轉換

來源:互聯網
上載者:User

  寫了一段有關顏色的文章,回顧過去幾篇文章,做一個階段性總結。利用前幾篇文章的心得,推匯出快速轉換RGB模式與HSV模式的公式。

  RGB模式:用R、G、B三個顏色的分量來表示顏色,分量的取值範圍為[0,255],整數型

  HSV模式:用H、S、V三個分量來表示顏色。

        分量H:表示顏色的色相,取值[0,360),整數型

        分量S:表示顏色的純度,取值[0,1),浮點數型

        分量V:表示顏色的亮度,取值[0,1),浮點數型

  以上內容,詳細請參看“電腦中的顏色III——HSV表示方法”

  1、RGB到HSV

    顏色(R,G,B)如何快速轉化到(H,S,V)

    參看文章“電腦中的顏色IV——純色、色相色”,“電腦中的顏色V——快速計算顏色的色相值”

    令MAX為R、G、B三個分量的最大值;MIN為三個分量的最小值

    若MAX=MIN,則

      H=0

      S=0

      V=MAX/255

    若MAX≠MIN

      當G≥B時

        H=(Max-R’+G’-Min+B’-Min)/(Max-Min)×60

        S=1-MIN/MAX

        V=MAX/255

      當G<B時

        H=360-(Max-R’+G’-Min+B’-Min)/(Max-Min)×60

        S=1-MIN/MAX

        V=MAX/255

  2、HSV到RGB

    顏色(H,S,V)如何快速轉化到(R,G,B)

    參看文章“電腦中的顏色VIII——快速計算顏色的偏轉”

    顏色(H,S,V)可以看成顏色(0,S,V)順時針偏轉H後得到顏色,其實,就是獲得該顏色MAX與MIN分量

    MAX=V×255=255V

    若S=0,說明MAX=MIN,此時表示灰階色

      R=MAX

      G=MAX

      B=MAX

    若S>0,則令ρ=MAX-MIN=255SV,MIN=MAX-ρ

      若H>180,令H’=360-H;反之,令H’=H

      令λ=H’/60×ρ

      R=2ρ-λ;若R<0,則R=0;若R>ρ,則R=ρ;

      G=λ;若G>ρ,則G=ρ;

      B=λ-2ρ;若B<0;則B=0;

      若H>180,則交換G和B分量的值;反之,不交換。最後

      R=R+MIN

      G=G+MIN

      B=B+MIN

  總述,以上是我推導的HSV和RGB的互相轉化公式,比許多網上介紹的原來的公式來的簡單。參看“電腦中的顏色III——HSV表示方法”。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.