91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 279KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-21
  • 語言: C/C++
  • 標簽: 編碼??LZW??LENA??信息論??

資源簡介

讀取一個256*256的圖像,并對其進行LZW編碼,最后輸出字典以及相應的碼字序列。壓縮包里面包含C++源代碼以及實驗報告。

資源截圖

代碼片段和文件信息

#include
#include
#include
#include

using?namespace?std;

//查找字典中有沒有條目I
bool?search(?vector>&?dict?vector&?I?vector::size_type&?index?);

int?main(?)
{
//------------------------------定義變量------------------------------------

//打開文件的指針
FILE?*fp;
//灰度值大小
int?grey_level?=?0;

//定義輸入序列
vector?input;
//定義輸出序列
vector?output;
//定義字典
vector>?dict;
//字典索引序號
vector::size_type?index;
//定義短語詞條I
vector?I;
//定義新加入的字符x
vector?x;

//-----------------------------讀取圖片-------------------------------------

//打開圖像矩陣文件
if(?(?fp?=?fopen(?“LENA256.IMG“?“rb“?)?)?==?NULL?){
printf(?“cannot?open?file\n“?);
exit(?0?);
}

int?size;
cout?< < cin?>>?size;

//構造灰度值序列
for(?int?i?=?0;?i?<=?size;?i++?){
grey_level?=?fgetc(?fp?);
if(?grey_level?==?EOF?)?
break;
input.push_back(?grey_level?);
}

//關閉圖像矩陣文件
fclose(?fp?);

//-------------------------------字典初始化------------------------------------

vector?temp;
temp.push_back(?0?);
for(?int?i?=?0;?i? temp[?0?]?=?i;
dict.push_back(?temp?);
}

//------------------------------構造碼字和字典---------------------------------

x.push_back(?input.back(?)?);
input.pop_back(?);
while(?!input.empty(?)?){
I.push_back(?x[?0?]?);
while(?1?){
//積累數據
search(?dict?I?index?);
I.push_back(?input.back(?)?);
x[?0?]?=?input.back(?);
input.pop_back(?);
//判斷轉移條件
if(?!search(?dict?I?index?)?)?break;
if(?input.empty(?)?)?break;
}
//輸出新碼字和輸出編碼結果
output.push_back(?index?);
if(?!input.empty(?)?)?dict.push_back(?I?);
I.clear(?);
}

//-----------------------------輸出碼字和字典----------------------------------

cout?< for(?vector::size_type?i?=?0;?i? cout?< for(?vector::size_type?j?=?0;?j? cout?< }
cout?< }

cout?< for(?vector::size_type?i?=?0;?i? cout?< if(?(?i?+?1?)?%?10?==?0?&&?i?!=?0?)?
cout?< }

cout?< cout?<
return?0;
}

bool?search(?vector>&?dict?vector&?I?vector::size_type&?index?)
{
for(?vector::size_type?i?=?0;?i? if(?I?==?dict[?i?]?){?
index?=?i;
return?true;
}

return?false;
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????2945??2011-12-23?16:13??LZW.cpp

?????文件?????294620??2011-12-24?00:13??作業五.docx

-----------?---------??----------?-----??----

???????????????297565????????????????????2


評論

共有 條評論