DASC代码全解析

这篇博客介绍了DASC(Directional and Anisotropic Structure Correlation)算法,它通过在图像中采样55x55的patch并计算相似度,利用引导滤波的方式简化计算。作者详细解释了相似度计算公式和如何使用GF进行特征提取。关键步骤包括计算G值和应用能量函数优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DASC的project和code参考:https://seungryong.github.io/DASC/

DASC含义

在一张影像中,像素i的DASC是在4040的空间中多次计算。每次计算,采样两个55的方格(记为patch s和patch t),然后计算这两个patch的相似度C(s,t)作为像素i的特征之一;

采样方式

在4040的区域内,采样两个55的方格比较,有很多的选择。这里采用有监督的训练方式(SVM)来得到最佳的选择

计算DASC描述符

公式说明:
在一张影像中,像素i的DASC是在4040的空间中多次计算。每次计算,采样两个55的方格(记为patch s和patch t),然后计算这两个patch的相似度C(s,t)作为像素i的特征之一;
在这里插入图片描述
其中C(s,t)的计算方式为:
s’和t’是指patch s和patch t中的对应位置,∑是指依次遍历patch s和patch t中对应位置(共5*5=25个位置);Ws,s’指的patch s中,s’位置的像素值与s的相似度,即|Vs’-Vs|;(fs’-Gs)(ft‘-Gt)类似于计算向量间的余弦相似性;
整体可以理解为:patch s和patch t中所有像素构成向量,计算含权重的余弦相似性;权重为该像素与中心像素的相似度。
exp(-(1-||))表示两个向量越相关(无论正相关还是负相关),相似度越高;越不相关,相似度越小
在这里插入图片描述
在这里插入图片描述
为了快速计算,可以把公式简化为:
在这里插入图片描述
在这里插入图片描述
其中:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

即上述几个参数都可以用GF的方式来获取(Guided Image Filtering),参考https://www.cnblogs.com/riddick/p/8367591.html
the weighted average of fj’ with a guidance image of fi’.

GF:当参考图像为I,输入图像为p,输出的图像记为q
在这里插入图片描述
通过最小化能量函数得到的结果为:
在这里插入图片描述
在这里插入图片描述

总结:可以江DASC描述符化简为为引导滤波的形式来计算
在这里插入图片描述

按照上述公式计算得到q
guidedfilter_runfilter(I, I, I_adaptive_mean, preco, runf, param, param_sub)

然后再按照公式10和公式8计算得到由于patch s和patch t构成的特征。

分别计算各个G
guidedfilter_runfilter(I, I, I_adaptive_mean, preco, runf, param, param_sub);
guidedfilter_runfilter(I, II, II_adaptive_mean, preco, runf, param, param_sub);
guidedfilter_runfilter(I, J, J_adaptive_mean, preco, runf, param, param_sub);
guidedfilter_runfilter(I, JJ, JJ_adaptive_mean, preco, runf, param, param_sub);
guidedfilter_runfilter(I, IJ, IJ_adaptive_mean, preco, runf, param, param_sub);

计算C作为特征
			if (i1 > 0 && i1 < param->row && j1 > 0 && j1 < param->col)
            {
				ind = i1 + param->row*j1;
				num_corrSurf = IJ_adaptive_mean[ind] - I_adaptive_mean[ind] * J_adaptive_mean[ind];
				dem_left = II_adaptive_mean[ind] - I_adaptive_mean[ind] * I_adaptive_mean[ind];
				dem_right = JJ_adaptive_mean[ind] - J_adaptive_mean[ind] * J_adaptive_mean[ind];
                dem_corrSurf = sqrt(dem_left*dem_right);
                
                if( dem_corrSurf > 1e-10)
                    fout[i + param->row*(j + param->col*s)] = exp(-(1-num_corrSurf/dem_corrSurf)/0.5);
                else
                    fout[i + param->row*(j + param->col*s)] = 1;
                
			}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值