資料壓縮任務三

2021-10-03 21:00:17 字數 2470 閱讀 7815

作業3:讀入乙個24bitrgb檔案(以down.rgb為例,其解析度為256*256),輸出該資料檔案中r、g、b三個分量(各8bit表示)的概率分布示意圖(類似下圖)和熵。

#include

#include

const int n = 65536;

using namespace std;

#pragma warning(disable : 4996)

//定義三個一維陣列256*256=65536

unsigned char r[n];

unsigned char g[n];

unsigned char b[n];

//定義寬和高

int width = 256;

int height = 256;

//定義頻率陣列並且初始化

double freq_r[256] = ;

double freq_g[256] = ;

double freq_b[256] = ;

//定義熵陣列並且初始化

double entropy_r[256] = ;

double entropy_g[256] = ;

double entropy_b[256] = ;

int main(void)

unsigned char buffer[196608];

/fread函式的用法:fread(buffer, size,count,stream )

buffer 是讀取的資料存放的記憶體的指標(可以是陣列,也可以是新開闢的空間,buffer就是乙個索引)

size 是每次讀取的位元組數

count 是讀取次數

strean 是要讀取的檔案的指標/

fp.read((char*)buffer, 196608);

//將所讀出的rgb數值存入三個陣列中

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

//三個迴圈分別計算頻率

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

for (int i = 0; i < 256; i++)//0~255}}

for (int i = 0; i < 256; i++)//0~255}}

//計算rgb的頻率和熵

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

//開啟三個txt檔案

ofstream fp1(「d:\資料壓縮原理作業\r_sat.txt」, ios::binary);

ofstream fp2(「d:\資料壓縮原理作業\g_sat.txt」, ios::binary);

ofstream fp3(「d:\資料壓縮原理作業\b_sat.txt」, ios::binary);

//symbol 空格 freq

fp1 << 「symbol\tfreq\n」;

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

fp2 << 「symbol\tfreq\n」;

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

fp3 << 「symbol\tfreq\n」;

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

//關閉檔案

一開始檔案開啟方式不對導致無法執行。後在同學幫助下將其改正,以下為錯誤**

但為什麼這樣改正原因不解,望老師解答

由於**基礎不好,所以面對此次任務有畏難的心理,折折騰騰好久,算是完成任務,雖然**不算漂亮。感謝被我麻煩的大佬同學,接下來我一定更認真對待學習,努力提高自己的**能力,我可以把短板補上的!

資料壓縮 任務一

任務 總結計算機程式設計中的各種資料型別,其表示形式和計算方法。重點關注型別轉換,數值溢位和移位等操作。整型 浮點型 字元型由高到低排序 long double double float unsigned long long int long long int unsigned long int l...

資料壓縮作業三2020 03 24

提示 用c或c 實現時 程式的流程為 開闢3個width height的unsigned char型陣列 開啟要讀出的rgb檔案 以 rb 方式開啟 開啟3個要輸出的資料統計檔案 以 w 方式開啟,可命名為r sat.txt等 將rgb資料從rgb檔案中讀出,並分別儲存到3個陣列中,期間計算資料的概...

ASIHTTPRequest 資料壓縮

從0.9版本開始,asihttprequest會提示伺服器它可以接收gzip壓縮過的資料。apache 2.x以上版本已經配備了mod deflate擴充套件,這使得apache可以透明地壓縮特定種類的資料。要開啟這個特性,你需要在apache的配置檔案中啟用mod deflate。並將mod de...