rgb和yuv檔案的熵的計算

2021-10-21 18:05:39 字數 2392 閱讀 4260

rgb的熵計算

#include

#include

#include

using namespace std;

#define a 65536

int main()

,g[a] = , b[a] = ;

//定義頻率分量

double r_f[256] = ,g_f[256] = ,b_f[256] = ;

//定義熵

double r_s = 0,g_s = 0, b_s = 0;

//分別讀取r、g、b三個分量到陣列中

unsigned char sum[2562563];

fread(sum, 1, 2562563, image);

for (int i = 0, j = 0; i < 256256*3; i = i + 3, j++)

//計數三通道各顏色值次數

for (int i = 0; i < 256; i++)

if (int(g[j] == i))

if (int(b[j] == i)) }}

//計算頻率

for (int i = 0; i < 256; i++)

//將頻率寫入檔案

fprintf(red, 「值\t概率\n」);

for (int i = 0; i < 256; i++)

fprintf(green, 「值\t概率\n」);

for (int i = 0; i < 256; i++)

fprintf(blue, 「值\t概率\n」);

for (int i = 0; i < 256; i++)

//計算並輸出熵

for (int i = 0; i < 256; i++)

if (g_f[i] != 0)

if (b_f[i] != 0)

}cout << 「r的熵為」 << r_s << endl;

cout << 「g的熵為」 << g_s << endl;

cout << 「b的熵為」 << b_s << endl;

fclose(image);

fclose(red);

fclose(green);

fclose(blue);

return 0;

}yuv 的熵的計算

#include

#include

#include

using namespace std;

#define res 256*256//解析度

int main()

, u[res / 4] = , v[res / 4] = ; //定義y、u、v分量

double y1[256] = , u1[256] = , v1[256] = ; //定義y、u、v概率分量

double y2 = 0, u2 = 0, v2 = 0; //定義y、u、v的熵

file* picture, * party, * partu, * partv;

fopen_s(&picture, "/d/資料壓縮/down.yuv", "rb");

fopen_s(&party, "/d/資料壓縮/party.txt", "w");

fopen_s(&partu, "/d/資料壓縮/partu.txt", "w");

fopen_s(&partv, "/d/資料壓縮partv.txt", "w");

if (picture == 0)

printf("讀取失敗!");

else

for (int i = res; i < res * 1.25; i++)

for (int i = res * 1.25; i < res * 1.5; i++)

//分別統計y、u、v三通道的顏色強度級的頻數

for (int i = 0; i < res; i++)

for (int i = 0; i < (res / 4); i++)

//分別計算y、u、v三通道的256個顏色強度級的概率

for (int i = 0; i < 256; i++)

//將概率寫入檔案

for (int i = 0; i < 256; i++)

//計算並輸出熵

for (int i = 0; i < 256; i++)

if (u1[i] != 0)

if (v1[i] != 0)

}printf("y的熵為%f\n", y2);

printf("u的熵為%f\n", u2);

printf("v的熵為%f\n", v2);

}system("pause");

return 0;

}

————————————————

YUV和RGB的互轉

yuv和rgb的轉換 模擬訊號 rgb轉yuv y 0.299r 0.587g 0.114b u 0.493 b y 0.147r 0.289g 0.436b v 0.877 r y 0.615r 0.515g 0.100b yuv轉rgb r y 1.14v g y 0.394u 0.581v b...

RGB和YUV的區別和轉換

rgb和yuv都是色彩空間,用於表示顏色,兩者可以相互轉化 至於電視採用yuv分量形式是由itu 國際電信聯盟 規定的,因為其能減少資料儲存空間和資料傳輸頻寬,同時又能非常方便的相容黑白電視!yuv是被歐洲電視系統所採用的一種顏色編碼方法 屬於pal 是pal和secam模擬彩色電視制式採用的顏色空...

常見的RGB和YUV格式分析

rgb1 rgb4 rgb8都是調色盤型別的rgb格式,在描述這些 型別的格式細節時,通常會在bitmapinfoheader資料結構後面跟著乙個調色盤 定義一系列顏色 它們的影象資料並不是真正的顏色值,而是當前畫素顏色值在調色盤中的索引。以rgb1 2色位圖 為例,比如它的調色盤中定義的兩種顏色值...