• 大小: 174.6 KB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-07-24
  • 语言: 其他
  • 标签: 控件  源码  资源  

资源简介

图像处理作业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 < n; j ++)
{
for (i = 0; i < n - j - 1; i ++)
{
if (w[i] > w[i + 1])
{
// 互换
fT = w[i];
w[i] = w[i + 1];
w[i + 1] = fT;

}
}
}

// 找到概率大于0处才开始编码
for (i = 0; i < n; 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个文件信息

评论

共有 条评论