YUV RGB通道熵計算

2021-10-25 17:37:43 字數 1885 閱讀 2136

分析rgb通道熵:

說明:兩個檔案的解析度均為256*256,yuv為4:2:0取樣空間,採用8bit量化。

思路:將檔案匯入,統計各畫素點的概率並放入buffer中儲存,再利用求熵的公式進行計算。

#include

#include

using

namespace std;

intmain()

, u0[

256]

=, v0[

256]=;

double r1[

256]

=, g1[

256]

=, b1[

256]=;

double y =

0.0, u =

0.0, v =

0.0;

double r =

0.0, g =

0.0, b =

0.0;

//開啟讀取資料夾

fopen_s

(&file1,

"down.yuv"

,"rb");

fread

(buffer0,

sizeof

(unsigned

char),

256*

256*

1.5, file1)

;for

(int i =

0; i <

(256

*256

); i++

)//計算yuv各通道的熵值

for(

int j =

0; j <

256; j++

)//y通道分量(0-256*256)

for(

int i =

(256

*256

); i <

(65536

*1.25

); i++

)//u通道分量(256*256-256*256*1.25)

for(

int j =

0; j <

256; j++

)//v通道分量(256*256*1.25-256*256*1.5)

//計算rgb的熵值

fopen_s

(&file2,

"down.rgb"

,"rb");

fread

(buffer1,

sizeof

(unsigned

char),

256*

256*

3, file2)

;for

(int i =

0; i <

(256

*256

); i++

)for

(int j =

0; j <

256; j++

)fclose

(file1)

;fclose

(file2)

; cout <<

"h(y)="

<< y << endl;

cout <<

"h(u)="

<< u << endl;

cout <<

"h(v)="

<< v << endl;

cout <<

"h(r)="

<< r << endl;

cout <<

"h(g)="

<< g << endl;

cout <<

"h(b)="

<< b << endl;

return(0

);}

結論:yuv方式的熵更小,壓縮結果更優。

語義分割單通道和多通道輸出交叉熵損失函式的計算問題

本文驗證了語義分割任務下,單通道輸出和多通道輸出時,使用交叉熵計算損失值的細節問題。對比驗證了使用簡單的函式和自帶損失函式的結果,通過驗證,進一步加強了對交叉熵的理解。交叉熵損失函式的原理和推導過程,可以參考這篇博文,交叉熵的計算公式如下 ce p,q p log q 其中 q 為 的概率,q 0,...

資訊熵計算權重

1948年美國數學家夏農 shanonc.e 為解決資訊的度量問題提出了資訊熵的概念。資訊熵是資訊理論中用來刻畫資訊無需度的乙個量,熵值越大,表示資訊的無序化程度越高,相對應的資訊效率越高 假設針對評價指標已經建立了合理的權重矩陣p,則pj表示第j個評價指標的權重。顯然pj的和為1且pj 0。為確定...

資訊熵的計算

最近在看決策樹的模型,其中涉及到資訊熵的計算,這裡東西是由訊號處理中來的,理論部分我就不再重複前人的東西了,下面給出兩個簡單的公式 當然學習過訊號與系統的童鞋一定覺得這不是夏農提出的東西嗎?o o 沒錯,就是這個東西,只不過我們用在了機器學習上,好了下面就看 吧,這些 也很簡單,我們知道資訊熵越大表...