嵌入成本计算函数 EmbeddingCost - 图像处理算法
该代码实现了一个计算嵌入成本的函数 EmbeddingCost。以下是对代码的详细解析:
-
第1行定义了一个名为
EmbeddingCost的函数,该函数有一个输入参数cover和一个输出参数cost。 -
第2行定义了一个 3×3 的高通滤波器
HF,用于检测图像中的高频内容。 -
第3行使用
fspecial函数创建了一个 3×3 的平均滤波器H2,用于平滑图像。 -
第4行将输入参数
cover转换为双精度类型,并将其保存在cover变量中。 -
第5行使用
size函数获取cover的大小,并将其保存在sizeCover变量中。 -
第6行计算了需要使用
padarray函数进行填充的大小,即HF的尺寸。 -
第7行使用
padarray函数对cover进行填充,填充大小为padsize,并使用对称填充方式。 -
第8行使用
conv2函数对填充后的cover进行HF滤波操作,并将结果保存在R变量中。 -
第9行使用
conv2函数对R的绝对值进行H2平均滤波操作,并将结果保存在W变量中。 -
第10行根据
HF的大小调整W的位置,使得W与cover的大小相同。 -
第11行计算嵌入成本
cost,公式为1./(W+10^(-10))。注意到这里加上了一个很小的数10^(-10),是为了避免除 0 错误。 -
第12行定义了一个很大的成本
wetCost,用于处理异常值。 -
第13行将
cost赋值给rhoA。 -
第14行将
rhoA中大于wetCost的值设置为wetCost。 -
第15行将
rhoA中的 NaN 值设置为wetCost。 -
第16行使用
fspecial函数创建一个 15×15 的平均滤波器HW。 -
第17行使用
imfilter函数对rhoA进行平滑操作,使用平滑器HW,对称填充方式,保持尺寸不变。 -
最后将平滑后的结果作为输出参数
cost返回。
该函数通过高通滤波器、平均滤波器以及图像平滑操作来计算嵌入成本,并处理异常值和 NaN 值,最终返回一个表示嵌入难度的成本值。
原文地址: https://www.cveoy.top/t/topic/qwWU 著作权归作者所有。请勿转载和采集!