資源簡介
圖像處理作業C++源代碼
代碼片段和文件信息
////////////////////////////////////////////////////////////////////////////////////////////
//codeofImage.cpp?:?implementation?file
//
//關于圖像編碼的處理函數實現
// HuffmanCoding(HuffmanTree?HT
// CString*?HCdouble?*wint?n) ?哈夫曼編碼
// MinCode?Select(HuffmanTree?HT?int?n) ?在huffmantree中取得最小的兩個值
// DIBToPCX256(HDIB?hDib?CFile&?file) ?Pcx文件編碼實現
// BOOL?WINAPI?DIBToDXF(HDIB?hDibCFile&?file)????寫到我自己定義的行程編碼文件中
// HGLOBAL?WINAPI?OpenDXF(HDIB?hDib?CFile&?file)?打開行程編碼文件
///////////////////////////////////////////////////////////////////////////////////////
#include?“stdafx.h“
#include?“codeOfImage.h“
#include?“math.h“
//////////////////////////////////////////////////////////////////////////////
// HuffmanCoding(HuffmanTree?HT
// CString*?HCdouble?*wint?n) ?哈夫曼編碼
// HT 形參,哈夫曼樹
// HC 哈夫曼編碼字符串
//??w 輸入權值數組
//??n 數組大小
/////////////////////////////////////////////////////////////////////////////
BOOL?HuffmanCoding(HuffmanTree?HTCString*?HCdouble?*wint?n)
{
int?is1=0s2=0;
//哈夫曼樹指針
HuffmanTree?p;
//臨時變量
int?fcm;
//兩個最小值
MinCode?min;
/* double?fT;
//?用冒泡法對進行灰度值出現的概率排序,結果保存在數組fTemp中
for?(j?=?0;?j? {
for?(i?=?0;?i? {
if?(w[i]?>?w[i?+?1])
{
//?互換
fT?=?w[i];
w[i]?=?w[i?+?1];
w[i?+?1]?=?fT;
}
}
}
//?找到概率大于0處才開始編碼
for?(i?=?0;?i? {
//?判斷概率是否大于0
if?(w[i]?>?0)
{
break;
}
}???
*/
if(n>1)?
???? m=2*n-1;
//為huffmantree分配內存2*-1
HT=(HuffmanTree)?new?BYTE[(m+1)*sizeof(HTNode)];
//初始化樹
for(p=HTi=0;i {
p->weight=*w;
p->parent=0;
p->lchild=0;
p->rchild=0;
}
for(;i {
p->weight=0;
p->parent=0;
p->lchild=0;
p->rchild=0;
}
//生成huffmantree
for(i=n;i {
min=Select(HTi);
s1=min.s1;
s2=min.s2;
HT[s1].parent=i;
HT[s2].parent=i;
HT[i].lchild=s1;
HT[i].rchild=s2;
HT[i].weight=HT[s1].weight+HT[s2].weight;
}
//由葉子到根,左葉子為0,右葉子為1,生成編碼,存入hc
for(i=0;i {
if?(0==HT[i].weight)?continue;
for(c=if=HT[i].parent;f!=0;c=ff=HT[f].parent)
{
////////////////////////////////////////////////
if(HT[f].lchild==c)?
HC[i]=“0“+HC[i];
else?
HC[i]=“1“+HC[i];
}
}
???return?TRUE;
}
//////////////////////////////////////////////////////////////////////////////
// MinCode?Select(HuffmanTree?HT?int?n)
// HT 形參,哈夫曼樹
//??n 要查找的數組范圍
//返回值為兩個最小的值
/////////////////////////////////////////////////////////////////////////////
MinCode?Select(HuffmanTree?HT?int?n)
{
double?minsecmin;
double?temp;
unsigned?int?is1s2tempi;
MinCode?code;
s1=1;s2=1;
for(i=0;i if(HT[i].parent==0)?//父節點為0的
{
min=HT[i].weight;
s1=i;
break;
}
tempi=i++;
for(;i if(HT[i].weight {
min=HT[i].weight;
s1=i;
}
for(i=tempi;i if(HT[i].parent==0&&i!=s1)
{
se
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????13502??2003-10-26?01:03??圖像處理作業C++源代碼\codeofImage.cpp
?????文件????????569??2003-10-16?22:16??圖像處理作業C++源代碼\codeOfImage.h
?????文件???????2195??2003-10-20?18:09??圖像處理作業C++源代碼\DiagramWnd.cpp
?????文件???????1338??2003-10-26?11:15??圖像處理作業C++源代碼\DiagramWnd.h
?????文件??????18680??2003-10-21?14:41??圖像處理作業C++源代碼\dibapi.cpp
?????文件???????6000??2003-11-01?10:59??圖像處理作業C++源代碼\dibapi.h
?????文件???????4236??2003-10-20?18:09??圖像處理作業C++源代碼\dibFourier.cpp
?????文件????????969??2003-10-13?09:23??圖像處理作業C++源代碼\dibFourier.h
?????文件???????8428??2003-10-29?20:12??圖像處理作業C++源代碼\DigitalPicWnd.cpp
?????文件???????1840??2003-10-26?12:48??圖像處理作業C++源代碼\DigitalPicWnd.h
?????文件???????9423??2003-09-17?23:33??圖像處理作業C++源代碼\dip.cpp
?????文件????????263??2003-09-16?18:49??圖像處理作業C++源代碼\dip.h
?????文件??????11878??2004-10-18?16:29??圖像處理作業C++源代碼\dip1.clw
?????文件???????3623??2003-10-27?00:44??圖像處理作業C++源代碼\dip1.cpp
?????文件????????533??2003-10-25?17:34??圖像處理作業C++源代碼\dip1.dsw
?????文件???????1347??2003-09-22?09:22??圖像處理作業C++源代碼\dip1.h
?????文件?????345088??2004-10-18?18:13??圖像處理作業C++源代碼\dip1.ncb
?????文件???????4456??2004-09-25?10:06??圖像處理作業C++源代碼\dip1.plg
?????文件????????981??2003-10-25?17:31??圖像處理作業C++源代碼\DlgGeoRota.cpp
?????文件???????1233??2003-10-25?17:31??圖像處理作業C++源代碼\DlgGeoRota.h
?????文件????????956??2003-10-25?17:22??圖像處理作業C++源代碼\DlgGeoTran1.cpp
?????文件???????1249??2003-10-25?17:21??圖像處理作業C++源代碼\DlgGeoTran1.h
?????文件???????2285??2003-10-26?15:35??圖像處理作業C++源代碼\DlgOfGetColor.cpp
?????文件???????1593??2003-10-26?14:43??圖像處理作業C++源代碼\DlgOfGetColor.h
?????文件???????1076??2003-10-20?18:13??圖像處理作業C++源代碼\DlgOfGsNoise.cpp
?????文件???????1270??2003-10-19?23:02??圖像處理作業C++源代碼\DlgOfGsNoise.h
?????文件??????12674??2003-11-09?18:47??圖像處理作業C++源代碼\DlgOfHideBmp.cpp
?????文件???????1552??2003-10-27?00:40??圖像處理作業C++源代碼\DlgOfHideBmp.h
?????文件???????3018??2003-10-20?18:20??圖像處理作業C++源代碼\DlgOfHuffman.cpp
?????文件???????1355??2003-10-16?23:28??圖像處理作業C++源代碼\DlgOfHuffman.h
............此處省略49個文件信息
- 上一篇:全國城市js數組
- 下一篇:典當綜合業務管理系統(完整版)
評論
共有 條評論