注册 登录
编程论坛 VC++/MFC

[求助]用VC编写程序,应用LSB和小波变换算法进行图像隐藏

lijinxin9512 发布于 2007-05-07 19:09, 945 次点击
这是我的毕业设计的需要,时间很紧张,可是因为没有学过C++,所以感到很茫然,不知怎么去做。希望大家可以为我指点迷津。谢谢大家了!!
2 回复
#2
zy19852009-11-24 15:01
]一个图像一次小波变换程序
void CBDBN::once(int n)
{
   int i,j;
   LONG wide,height,nWide,nHeight;
   LPBYTE temp1, temp2, m_pData2;
   PostIndex=PostDib->GetIndex();
   for(int k=1;k<=n;k++)
  {
       wide=PostDib->Width();
       height=PostDib->Height();
       PostIndex=PostDib->GetIndex();
       m_pData2=*PostDib->GetIndex();
       //分配临时数据空间
       temp1 = new BYTE[height*wide];
       temp2 = new BYTE[height*wide];
       nWide=wide/pow(2,k);
       nHeight=height/pow(2,k);
               //完成行变换
       for(j = height*(1-1/pow(2,(k-1))); j < height; j ++)         
       {
           for(i = 0; i < nWide; i ++)      
           {
               int w = i *2;
               temp1[j*wide+i] = PostIndex[j][w];        //偶
               temp1[j*wide+nWide+i] = PostIndex[j][w+1];    //奇
           }
       }
       //通过图像的差分,完成小波变换
       for(j= height*(1-1/pow(2,(k-1))); j<height; j++)
       {
           for(i=0; i<nWide-1; i++)
           {
               temp1[j*wide+nWide-1+i] =temp1[j*wide+nWide-1+i] - temp1[j*wide+i]+128;   
           }
       }
       //完成列变换
       for(i = 0; i < wide/pow(2,k-1); i ++)         
       {
           for(j = height*(1-1/pow(2,(k-1))); j < height*(1-1/pow(2,(k-1)))+nHeight; j ++)      
           {
               int m, h;
               m=height*(1-1/pow(2,(k-1)));
               h= (j-m)*2 ;
               temp2[j*wide+i] = temp1[(m+h)*wide+i];        //even
               temp2[(nHeight + j)*wide+i] = temp1[(m+h+1)*wide+i];    //odd
           }
       }
       //通过图像的差分,完成小波变换
       for(i=0; i<wide/pow(2,k-1); i++)
       {
           for(j = height*(1-1/pow(2,(k-1))); j < height*(1-1/pow(2,(k-1)))+nHeight; j ++)
           {
               temp2[ j*wide+i] = temp2[j*wide+i]-temp2[(nHeight + j)*wide+i]+128;
           }
       }
       //小波经过处理后,放入显示缓存中
       for(j = height*(1-1/pow(2,(k-1))); j < height; j ++)   
       {
           for(i=0; i<wide/pow(2,k-1); i++)
           {
               PostIndex[j] = temp2[j*wide+i];
           }
       }
       //删除临时的数据空间
       delete temp1;
       delete temp2;
   }
}
#3
好好学习11112013-05-16 20:03
没有一维数据的小波变换代码吗 求参考!
1