最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python光學(xué)仿真實現(xiàn)波長與顏色之間對應(yīng)關(guān)系示例解析

 更新時間:2021年10月20日 10:14:25   作者:微小冷  
這篇文章主要為大家介紹了Python光學(xué)仿真實現(xiàn)波長與顏色之間對應(yīng)關(guān)系的示例解析,有需要的我朋友可以借鑒參考下,希望能夠有所幫助

光的顏色

與其說顏色是光的一種屬性,不如說是人眼對可見光頻率范圍內(nèi)的一種感應(yīng),是人眼的一種屬性。而人眼對光頻的感應(yīng)包括三個方面,即明度、色調(diào)和飽和度。

其中,

  • 明度與光強有關(guān)
  • 色調(diào)反應(yīng)的是光的頻率信息
  • 飽和度表示圖像上的顏色與光譜色的接近程度

當(dāng)不考慮色調(diào)、飽和度為0的時候,只考慮明度,則色彩感消失,就是所謂的黑白圖像,或者更嚴(yán)格地說是灰度圖像。

色調(diào)與飽和度雖然反應(yīng)色光的頻率信息,但表現(xiàn)的是人眼對光的反饋特性,與光的頻率是不同的物理量。其與光的頻率之間的對應(yīng)關(guān)系也是由人眼的感光細胞決定的。由于自然界中并不存在嚴(yán)格的單色光,人的色覺其實是人眼的兩種感光細胞所產(chǎn)生的色覺的混合。

也就是說,幾種基準(zhǔn)頻率的光按照不同的飽和度互相混合,人眼將會感受到顏色的變化,也可以說是產(chǎn)生新的顏色。實驗表明,任意三種不能互相轉(zhuǎn)換的顏色可以通過互相混合完成對光譜色的一一對應(yīng)。這樣的三種光叫做三原色,一般選取紅綠藍作為三原色。

在這里插入圖片描述

由于三者已經(jīng)歸一化,所以只要知道其中兩個值就能夠確定色品,以 r 為橫坐標(biāo) g 為縱坐標(biāo),就能夠表示出所有可能的色品。這種圖大家并不陌生,在手機發(fā)布會上最常見,這里我們畫出一個類似的圖樣

在這里插入圖片描述

def CIE_RGB():
    rgb = np.zeros([1000,1000,3])
    r = np.arange(0,1,0.001)
    r,g = np.meshgrid(r,r)
    rgb[:,:,0] = r
    rgb[:,:,1] = g
    rgb[:,:,2] = 1-r-g
    over = rgb[:,:,2]<0
    rgb[over,:]=[1,1,1]
    #將色品轉(zhuǎn)化成RGB
    maxVal = np.max(rgb,2)
    for i in [0,1,2]:
        rgb[:,:,i] /= maxVal
    #rgb[rgb<0]=0
    ax = plt.gca()
    ax.imshow(rgb)
    ax.invert_yaxis()    #plt顯示圖片時y軸從上到下,所以反置
    # 坐標(biāo)映射
    plt.xticks(range(0,1001,200),['0','0.2','0.4','0.6','0.8','1'])
    plt.yticks(range(0,1001,200),['0','0.2','0.4','0.6','0.8','1'])
    plt.show()

然而根據(jù)實驗測得,RGB系統(tǒng)的刺激值存在負值,也就是說上圖中其實并沒有將所有的顏色納入其中,所以CIE又推薦了XYZ色度學(xué)系統(tǒng),其本質(zhì)上是對RGB系統(tǒng)的線性變換,最終讓該系統(tǒng)所對應(yīng)的刺激值為正數(shù)。其公式為

在這里插入圖片描述

python實現(xiàn)為

#dWave為波長;maxPix為最大值;gamma為調(diào)教參數(shù)
def getRGB(dWave,maxPix=1,gamma=1):
    waveArea = [380,440,490,510,580,645,780]
    minusWave = [0,440,440,510,510,645,780]
    deltWave = [1,60,50,20,70,65,35]
    for p in range(len(waveArea)):
        if dWave<waveArea[p]:
            break
    pVar = abs(minusWave[p]-dWave)/deltWave[p]
    rgbs = [[0,0,0],[pVar,0,1],[0,pVar,1],[0,1,pVar],
            [pVar,1,0],[1,pVar,0],[1,0,0],[0,0,0]]
        #在光譜邊緣處顏色變暗
    if (dWave>=380) & (dWave<420):
        alpha = 0.3+0.7*(dWave-380)/(420-380)
    elif (dWave>=420) & (dWave<701):
        alpha = 1.0
    elif (dWave>=701) & (dWave<780):
        alpha = 0.3+0.7*(780-dWave)/(780-700)
    else:
        alpha = 0       #非可見區(qū)
    return [maxPix*(c*alpha)**gamma for c in rgbs[p]]

繪制光譜

def drawSpec():
    pic = np.zeros([100,360,3])
    rgb = [getRGB(d) for d in range(400,760)]
    pic = pic+rgb
    plt.imshow(pic)
    plt.yticks([])      #隱藏y坐標(biāo)軸
    plt.xticks(range(0,360,50),['400','450','500','550','600','650','700','750'])
    plt.show()

在這里插入圖片描述

以上就是Python光學(xué)仿真實現(xiàn)波長與顏色之間對應(yīng)關(guān)系示例解析的詳細內(nèi)容,更多關(guān)于Python光學(xué)仿真波長與顏色對應(yīng)關(guān)系的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 淺談Python實現(xiàn)opencv之圖片色素的數(shù)值運算和邏輯運算

    淺談Python實現(xiàn)opencv之圖片色素的數(shù)值運算和邏輯運算

    今天帶大家來學(xué)習(xí)的是關(guān)于Python的相關(guān)知識,文章圍繞著圖片色素的數(shù)值運算和邏輯運算展開,文中有非常詳細的的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Appium自動化測試中獲取Toast信息操作

    Appium自動化測試中獲取Toast信息操作

    本文主要介紹了Appium自動化測試中獲取Toast信息操作,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Python使用pymongo模塊操作MongoDB的方法示例

    Python使用pymongo模塊操作MongoDB的方法示例

    這篇文章主要介紹了Python使用pymongo模塊操作MongoDB的方法,結(jié)合實例形式分析了Python基于pymongo模塊連接MongoDB數(shù)據(jù)庫以及增刪改查與日志記錄相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07
  • pyqt5 獲取顯示器的分辨率的方法

    pyqt5 獲取顯示器的分辨率的方法

    今天小編就為大家分享一篇pyqt5 獲取顯示器的分辨率的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • 在django中圖片上傳的格式校驗及大小方法

    在django中圖片上傳的格式校驗及大小方法

    今天小編就為大家分享一篇在django中圖片上傳的格式校驗及大小方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python+Selenium自動化環(huán)境搭建與操作基礎(chǔ)詳解

    Python+Selenium自動化環(huán)境搭建與操作基礎(chǔ)詳解

    Selenium是如今最常用的自動化測試工具之一,支持快速開發(fā)自動化測試框架,且支持在多種瀏覽器上執(zhí)行測試。本文將介紹關(guān)于Selenium?Python自動化腳本環(huán)境搭建的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • 解決Mac下首次安裝pycharm無project interpreter的問題

    解決Mac下首次安裝pycharm無project interpreter的問題

    今天小編就為大家分享一篇解決Mac下首次安裝pycharm無project interpreter的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Django中間件整合Vue攔截器的使用

    Django中間件整合Vue攔截器的使用

    本文主要介紹了Django中間件整合Vue攔截器的使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • python如何實現(xiàn)讀取并顯示圖片(不需要圖形界面)

    python如何實現(xiàn)讀取并顯示圖片(不需要圖形界面)

    這篇文章主要介紹了python如何實現(xiàn)讀取并顯示圖片,文中示例代碼非常詳細,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • Python創(chuàng)建SQL數(shù)據(jù)庫流程逐步講解

    Python創(chuàng)建SQL數(shù)據(jù)庫流程逐步講解

    會寫SQL很重要,能高效地查詢數(shù)據(jù)庫被認為是數(shù)據(jù)分析師/科學(xué)家最基本的技能之一。SQL不僅重要,而且非常常用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-09-09

最新評論

齐河县| 忻城县| 钟山县| 九寨沟县| 九台市| 新邵县| 紫金县| 江永县| 定陶县| 九台市| 祁连县| 新竹市| 云阳县| 九龙坡区| 巴塘县| 高台县| 甘孜县| 西吉县| 汶川县| 正宁县| 云南省| 牟定县| 涞源县| 自贡市| 老河口市| 南涧| 宣城市| 霍邱县| 南投县| 舒兰市| 丰原市| 盈江县| 武汉市| 兴国县| 阿拉善盟| 济南市| 桂阳县| 新闻| 井陉县| 育儿| 宁津县|