OpenCV4 Android 顏色空間轉換

圖像色彩模式

位圖模式

位圖模式是色彩模式中佔有空間最小,包含信息量最小的一種模式。它只有黑白兩種色素,因此也叫做黑白圖。
從彩色圖轉爲位圖的過程被稱爲 “二值化”。彩色圖不能直接轉爲位圖,需要先將其轉爲灰度模式,然後才能轉爲位圖。

灰度模式

灰度模式是採用單一色調來表示圖像。1個像素點佔1字節,即 8 bit,每個像素使用 0~255 來表示亮度,0爲黑色,128爲灰色,255爲白色。

RGB模式

RGB模式是我們最常用到的,也被稱爲真色彩。

CMYK模式

HSB 模式

YUV格式

YUV開始主要用於電視系統以及模擬視頻領域,後面手機相機也延用了這一格式,因此大部分攝像頭輸出的圖片格式都是 YUV 格式(安卓是NV12,YUV的一種)。YUV 中的 “Y” 表示亮度(Luminance 或 Luma)也就是灰度值,“U” 和 “V” 表示的則是色度(Chrominance或Chroma),作用是描述影像色彩及飽和度,用於指定像素的顏色。如果只用 “Y” 而不用 “UV” 也可也進行呈像,只不過是黑白的,這樣就能很好的解決了黑白電視與彩色電視的兼容問題。此外,與RGB相比,YUV具有佔用帶寬更少的優勢。

cvtColor

但在圖像的處理過程中卻很少使用 YUV 格式,一般都需要轉成 RGB 格式 或者灰度圖格式進行轉換。

opencv 提供了 cvtColor 函數,用於在圖像的不同色彩空間進行轉換。

函數被定義在 Imgproc.java 中,
public static void cvtColor(Mat src, Mat dst, int code) { …… }

  • src 原始圖像
  • dst 輸出圖像
  • code 由某種格式轉爲另一個格式的枚舉

在這裏插入圖片描述

代碼示例

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章