21walsh变换.
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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
四、执行结果: