Just My Life & My Work

Posts tagged ‘rgb’

[OpenCV] 產生具透明度的影像 (Create Transparency Image)

喜歡視覺觀感的我,一直在處理RGB影像,還沒有實際去產生RGBA影像,只有最近拿人家已經做好的PNG美術影像來做APP,一直對透明度懵懵懂懂。在影像中的每一個像素,RGB有24bits,而RGBA則有32bits,如此想像,只要創建的影像每個像素配給它32bits,即可產生具透明度的影像

以下程式跑出來具透明度的PNG影像,RGBA=(0, 127, 255, 127)。

happyman_IplImage

(繼續閱讀…)

[OpenCV] 產生色彩空間 (Create Color Space)

為了做研究,我必須製作整個色彩空間,想以RGB立體」的方式來產生,然而只能以「平面」的方式顯示在螢幕上,於是我寫了三維映射到二維的程式來實現~

產生色彩空間 Create Color Space

程式將會產生4096×4096PNG(無損壓縮格式)檔案(8.07MB),不過為了節省我寶貴的部落格空間,我將影像縮小並轉存為1024×1024JPG(有損壓縮格式)檔案(120KB)。有興趣的人就去跑我的程式來取得整個色彩空間圖吧:)~

(繼續閱讀…)

[OpenCV] 轉換色彩空間失真 (Transform Color Space Distortion)

我以為透過OpenCV轉換色彩空間,可以很輕易地來回轉換,而且不會有失真的問題。然而後來我知道,轉換色彩空間會有計算上精準度的問題(小問題),除此之外我又發現一個更容易失真的問題(大問題),其實對程式設計師而言相當容易發現才是,也就是:轉換色彩空間一個函式儲存影像一個函式,後者失真程度遠大於前者!怎麼會這樣子呢?來看一下實驗結果……

(繼續閱讀…)

轉換色彩空間 (Transform Color Space)

OpenCV使用函式就能很簡單地轉換色彩空間,然而我在這過程中發現一些差異性的問題,理論跟實際是有些許落差,這將影響我做研究的結果呢!

(繼續閱讀…)

[OpenCV] 轉換色彩空間 (Transform Color Space)

先前已寫過轉換色彩空間 (Transform Color Space),但那時沒有測試到Lab色彩空間。當前研究需要使用CIE L*a*b*色彩空間,於是再次實驗該程式碼,並有深入瞭解各色彩空間相互轉換的數學關係。

(繼續閱讀…)

RGB與CIELAB色彩空間轉換

之前有研究CIE L*a*b*色彩空間,現在想更進一步探討RGB色彩空間轉換至CIE L*a*b*色彩空間

  • 這時候我們想知道,為何需要將RGB色彩空間轉換至CIE L*a*b*色彩空間?

一般影像在儲存像素的色彩時,使用RGB色彩空間來表示一個像素的顏色,這種表示方法可用來傳達一個像素的色彩在紅、綠、藍三個頻道(channel)中的相關性;但是,從RGB表示法無法得知像素的明亮度(luminance)飽和度(saturation)色相(hue)為何,因此,我們將像素的色彩由RGB色彩空間轉換至CIELAB(或CIE L*a*b*)。

(繼續閱讀…)

[OpenCV] 轉換色彩空間 (Transform Color Space)

一般日常所見的影像都是RGB色彩,然而想要分析影像有時需要轉換色彩空間,如HSVYUV,原來OpenCV可以幫我做到!

(繼續閱讀…)

[OpenCV] 轉換影像為灰階 (Transform Image to Gray Level)

從前有空沒事就在用影像處理軟體,很方便且輕易地按了「灰階」這個功能,軟體馬上就將影像轉換為灰階,因此會直覺以為轉換過程很簡單,直至今日,自己用OpenCV來實驗,才發覺有些細節,跟我們人的眼睛有關係。

廣告

剛好也可以來練習如何取得影像中像素RGB的值,知道這一點之後,即可拿RGB的值來做更進一步的運算,像是調整亮度、對比、r值、色相、彩度、明亮度,甚至透過統計來風格化。

很直覺地猜想,彩色轉灰接的過程應該是灰階=(紅+綠+藍)/3,其實不然。實際上人眼對綠色的亮度感最大,而對藍色最小,於是Gray = 0.299 * Red + 0.587 * Green + 0.114 * Blue才能得到比較適合人類眼睛的灰階影像,久而久之已成為影像處理界所用來彩色轉灰階的標準。

廣告
(繼續閱讀…)

標籤雲