21walsh变换.

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、功能:walsh变换

二、实现方法:

256色是8位色的图,可以显示最多8位的颜色,它是彩色的图像,灰度是在黑与白以及它们之间的灰色的程度来显示图像。任何颜色都有红、绿、蓝三原色组成,假如原来某点的颜色为RGB(R,G,B),那么,我们可以通过下面几种方法,将其转换为灰度:

1.浮点算法:Gray=R*0.3+G*0.59+B*0.11

2.整数方法:Gray=(R*30+G*59+B*11)/100

3.移位方法:Gray =(R*28+G*151+B*77)>>8;

4.平均值法:Gray=(R+G+B)/3;

5.仅取绿色:Gray=G;

通过上述任一种方法求得Gray后,将原来的RGB(R,G,B)中的R,G,B统一用Gray替换,形成新的颜色RGB(Gray,Gray,Gray),用它替换原来的RGB(R,G,B)就是灰度图了。

三、程序说明:

VOID WINAPI WALSH(double *f, double *F, int r) 实现快速沃尔什-哈达玛变换参数:double * f - 指向时域值的指针

double * F - 指向频域值的指针

r -2的幂数

返回值:无

BOOL WINAPI DIBWalsh1(LPSTR lpDIBBits, LONG lWidth, LONG lHeight) 对图像进行沃尔什-哈达玛变换,将二维矩阵转换成一个列向量,然后对该列向量进行一次一维沃尔什-哈达玛变换。

参数: LPSTR lpDIBBits - 指向源DIB图像指针

LONG lWidth - 源图像宽度(象素数)

LONG lHeight - 源图像高度(象素数)

返回值:BOOL - 成功返回TRUE,否则返回FALSE。

完整程序见:21walsh变换.zip

四、执行结果:

相关文档
最新文档