BDIP&BVLC介绍 BDIP(block difference of inverse probabilities),基于块的逆转概率(私以为很拗口,翻译不佳),描述了在一个M*M大小的块内,像素值变化的快慢,计算的BDIP值越大,原图像像素值变化越剧烈。 BVLC(block-based of variation of local correlation coefficients),基于块的局部相关系数,描述了一个像素点与周围四个方向(-90, 0, -45, 45)的相关度,计算的BVLC值越大,原图像越粗糙。 BDIP&BVLC特征图的特征描述子可见文末附带文献。 BDIP&BVLC计算方法 BDIP I(i, j)表示属于M*M块中某一个像素值 BVLC k,l分别表示水平和垂直移动 ,I(i, j)表示属于M*M块中某一个像素值,O(4)表示四个平移方向 σ(k,l)表示在平移后M*M像素块里的标准差 ,σ(0,0)表示当前M*M块的标准差 μ(k,l)表示在平移后M*M像素块里的均值 ,μ(0,0)表示当前M*M块的均值 像素平移示意图 实现 (1)BDIP void bdip(const Mat& src) { Mat bdip; bdip = src.clone(); int nRows; int nCols; nRows = src.rows; nCols = src.cols; //计算bdip特征图 for(int r = 0; r < nRows; ++r) { for(int c = 0; c < nCols; ++c) { float blockValue = 0.0; int blockSum = 0; int blockMax =