cv基礎組隊學習

2021-10-05 11:08:29 字數 2600 閱讀 1399

影象彩色空間互轉在影象處理中應用非常廣泛,而且很多演算法只對灰度圖有效;另外,相比rgb,其他顏色空間(比如hsv、hsi)更具可分離性和可操作性,所以很多影象演算法需要將影象從rgb轉為其他顏色空間,所以影象彩色互轉是十分重要和關鍵的

1.相關顏色空間的原理介紹

2.顏色空間互轉理論的介紹

3.opencv**實踐

4.動手實踐

4.1 rgb與灰度圖互轉

rgb顏色空間以r(red:紅)、g(green:綠)、b(blue:藍)三種基本色為基礎,進行不同程度的疊加,產生豐富而廣泛的顏色,所以俗稱三基色模式。電視機、電腦的顯示器等大部分都是採用這種模型。自然界中的任何一種顏色都可以由紅、綠、藍三種色光混合而成,現實生活中人們見到的顏色大多是混合而成的色彩。

rgb顏色空間是用乙個單位長度的立方體來表示顏色的,黑藍綠青紅紫黃白8種常見顏色分別位居立方體的8個頂點,通常將黑色置於三維直角座標系的原點,紅綠藍分別置於3根座標軸土,整個立方體放在第1卦限內。如下圖所示。而其中的青色與紅色、紫色與綠色、黃色與藍色是互補色。各引數的取值範圍是:r:0-255;g:0-255;b:0-255。引數值也稱為三色係數或基色係數或顏色值,除以255後歸一到0-1之間,但不是無窮多個而是有限多個值。由於每個灰度級都定為256,所以,紅綠藍分量全部組合起來共可表示256256256=16777216種不同的顏色。它比人眼能分辨的顏色種數多得多。因此,雖然自然界中的顏色非常多,但用rgb顏色空間來近似表達自然界中的顏色是完全夠用了.

rgb使用紅、綠、藍三原色的亮度來定量表示顏色,能清楚知道三原色的比例,但是並不直觀,很難想象看見這三原色的比例能直接知道色彩到底是什麼樣的。科學研究一般不採用rgb顏色空間,因為它的細節難以進行數位化的調整。它將色調,亮度,飽和度三個量放在一起表示,很難分開。

對於彩色圖轉灰度圖,有乙個很著名的心理學公式:

gray = r * 0.299 + g * 0.587 + b * 0.114

原圖:

轉為灰度圖:

4.2 rgb與hsv互轉

hsv是一種將rgb色彩空間中的點在倒圓錐體中的表示方法。hsv即色相(hue)、飽和度(saturation)、明度(value),又稱hsb(b即brightness)。色相是色彩的基本屬性,就是平常說的顏色的名稱,如紅色、黃色等。飽和度(s)是指色彩的純度,越高色彩越純,低則逐漸變灰,取0-100%的數值。明度(v),取0-max(計算機中hsv取值範圍和儲存的長度有關)。hsv顏色空間可以用乙個圓錐空間模型來描述。圓錐的頂點處,v=0,h和s無定義,代表黑色。圓錐的頂面中心處v=max,s=0,h無定義,代表白色。

rgb顏色空間中,三種顏色分量的取值與所生成的顏色之間的聯絡並不直觀。而hsv顏色空間,更類似於人類感覺顏色的方式,封裝了關於顏色的資訊:「這是什麼顏色?深淺如何?明暗如何?

這個模型就是按色彩、深淺、明暗來描述的。

h是色彩;

s是深淺, s = 0時,只有灰度;

v是明暗,表示色彩的明亮程度,但與光強無直接聯絡。

應用:可以用於偏光矯正、去除陰影、影象分割等,下面貼出一張hsv顏色空間圖:

效果圖:

src: 輸入影象

dst: 輸出影象

code: 顏色空間轉換識別符號

opencv2的cv_字首巨集命名規範被opencv3中的color_式的巨集命名字首取代

注意rgb色彩空間預設通道順序為bgr

具體可以參考: enum cv::colorconversioncode部分

dstcn: 目標影象的通道數,該引數為0時,目標影象根據源影象的通道數和具體操作自動決定

cv實踐組隊學習交流(一)pytorch安裝

第一步 安裝torch 1 需要到torch官網上檢視,符合自己電腦配置的torch版本。選擇自己電腦的系統,cuda 可在控制面板,系統資訊裡檢視,我的是9.1 官網上會給出對應版本的連線。將此鏈結複製,留用。注 cuda最後乙個選項是none,我就選的這個選項。因為我的cuda是9.1,官網沒有...

《街景字元編碼識別CV組隊學習》第2次打卡

一 資料讀取與資料擴增 影象讀取 pil和opencv img cv2.imread cat.jpg 2.資料擴增 資料擴增是本次比賽的關鍵,在簡單擴增的情況下,訓練非常容易過擬合。嘗試增加更多的合適的擴增方法 3.pytorch 讀取資料 dataset是對資料集的封裝,提供索引讀取資料的方式 c...

《街景字元編碼識別CV組隊學習》第5次打卡

一 學習內容 模型整合 1.整合學習方法 常見的方法包括stacking bagging boosting三類,與驗證集的劃分有關。比如10折交叉驗證。2.深度學習中的整合方法 a.dropout 一般放在relu之後,用於緩解過擬合,目前已不常用 b.測試集資料擴增 tta test time a...