基于Matlab的11种图像清晰度评价指标:直接可运行,联系我
基于matlab图像清晰度评价指标。 一共11种。 程序已调通可直接运行。 需要直接联系。 基于matlab图像清晰度评价指标。 一共11种。 程序已调通可直接运行。 需要直接联系。 图像剃度的清晰度评价(EOG, Roberts, Tenengrad, Brenner,Variance, Laplace,)频域评价离散傅里叶变换离散余弦变换熵值评价统计值评价灰度带自相关函数。最近在折腾图像质量评估的时候发现网上关于清晰度评价的代码要么跑不通要么指标不齐全。自己用Matlab攒了一套工具箱实测能直接跑通的11种方法从传统梯度算法到频域分析都有顺手分享几个有意思的实现片段。先说说梯度系的方法这类算法特别适合评估显微镜这类存在明显边缘特征的图像。比如Tenengrad指标用Sobel算子检测边缘强度三行代码就能搞定function score tenengrad(img) sobel_kernel fspecial(sobel); gx imfilter(double(img), sobel_kernel); gy imfilter(double(img), sobel_kernel); score sum(gx(:).^2 gy(:).^2); end这里有个细节Sobel算子的转置矩阵用来提取横向和纵向梯度平方和越大说明图像边缘越锐利。不过要注意环境光照变化会影响结果建议先做归一化。频域分析里DFT指标有点反直觉——越清晰的图像高频分量越多。试试离散傅里叶变换的暴力美学function score dft_sharpness(img) fft_img abs(fftshift(fft2(img))); center floor(size(fft_img)/2); high_freq fft_img(center(1)-10:center(1)10, center(2)-10:center(2)10); score sum(high_freq(:)); end这个实现截取频谱中心20x20区域高频分量其实更严谨的做法应该用环形区域采样。不过对于快速验证足够了模糊图像的频谱确实像被高斯模糊过一样散开。基于matlab图像清晰度评价指标。 一共11种。 程序已调通可直接运行。 需要直接联系。 基于matlab图像清晰度评价指标。 一共11种。 程序已调通可直接运行。 需要直接联系。 图像剃度的清晰度评价(EOG, Roberts, Tenengrad, Brenner,Variance, Laplace,)频域评价离散傅里叶变换离散余弦变换熵值评价统计值评价灰度带自相关函数。统计方法里的自相关函数挺有意思的。清晰图像的自相关曲线衰减更快这个实现用了位移相乘法function score autocorr_metric(img) shifted circshift(img, [5,5]); product double(img) .* double(shifted); score sum(product(:)) / sum(img(:).^2); end位移量我随便设的5像素实际操作要根据图像尺寸调整。当图像模糊时相邻像素相似性更高这个比值会趋近于1而锐利图像的比值明显更小。最后说说Brenner梯度这个经典算法它的实现简单到难以置信function score brenner(img) diff diff(img, 2, 2); % 横向二阶差分 score sum(diff(:).^2); end横向相邻两个像素的差值平方和原理是清晰图像会有更大的相邻像素差异。实测对高斯模糊特别敏感但对运动模糊效果一般可能需要结合其他指标使用。完整工具箱里还有基于信息熵的评估、Laplace算子变体等玩法。比如改进的EOG指标融合了多方向梯度Variance算法加上了局部对比度权重。这些指标单独使用时各有局限但组合起来做加权评分在工业检测场景下准确率能到90%以上。需要对比测试的话建议同时跑3-5个指标观察趋势是否一致。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2452764.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!