将一段C++版的pHash算法翻译为C#版的

程序员乙 发布于 2019/03/15 18:19
阅读 407
收藏 0

pHash算法的C++代码如下:

```

//pHash算法  
 string pHashValue(Mat &src)  
 {  
     Mat img ,dst;  
     string rst(64,'\0');  
     double dIdex[64];  
     double mean = 0.0;  
     int k = 0;  
     if(src.channels()==3)  
     {  
         cvtColor(src,src,CV_BGR2GRAY);  
         img = Mat_<double>(src);  
     }     
     else  
     {  
         img = Mat_<double>(src);  
     }       
        
        /* 第一步,缩放尺寸*/  
     resize(img, img, Size(8,8));  
           
        /* 第二步,离散余弦变换,DCT系数求取*/  
     dct(img, dst);   
   
        /* 第三步,求取DCT系数均值(左上角8*8区块的DCT系数)*/  
     for (int i = 0; i < 8; ++i) {  
         for (int j = 0; j < 8; ++j)   
         {  
             dIdex[k] = dst.at<double>(i, j);  
             mean += dst.at<double>(i, j)/64;  
             ++k;  
         }  
     }  
           
        /* 第四步,计算哈希值。*/  
     for (int i =0;i<64;++i)  
     {  
         if (dIdex[i]>=mean)  
         {  
             rst[i]='1';  
         }  
         else  
         {  
             rst[i]='0';  
         }  
     }  
     return rst;  
 }  

```

翻译为C#版后无法运行,哪位达者帮忙给翻译一下。感谢!!

加载中
0
程序员乙
程序员乙
该评论暂时无法显示,详情咨询 QQ 群:点此入群
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部