随着移动成像设备的快速增长,数字图像已经成为了信息表示和交互的重要载体。然而,数字图像在整个生存周期中的不同阶段都有可能造成不同程度的质量衰减。这些衰减将会导致视觉信息的损失,从而造成无法令观察者满意的感官体验,同时也会对后续的图像处理和分析步骤造成困难。图像质量的评价问题在大量的图像/视频处理和机器视觉应用上起到了至关重要的作用,包括图像压缩、传输、获取、显示、增强、去噪、分割、检测、照片分类等。图像的质量包括保真度和可懂度两方面,其中保真度测量了待测图像与标准图像之间的偏离情况;可懂度表示了人类或者机器能够从图像中获取相关信息的能力。图像质量评价一般分为主观评价和客观评价。主观评价的目标是通过设计实验来获取人类对图像的主观评价分数,而客观评价的目标是通过设计计算模型,从而能够精确和自动地预测与人类感知相关的失真图像的质量。相比于客观评价中的全参考和半参考图像质量评价,无参考图像质量评价是指在不知道任何关于参考图像信息的情况下能够对待测图像质量进行评价,这也是最具有挑战性和难度最大的客观评价方法。近年来,深度学习领域的蓬勃发展促使了机器视觉领域取得了许多令人瞩目的突破性成果,例如图像识别、图像分类、目标检测,目标跟踪、图像分割、图像超分辨率重建、图像去噪、图像质量评价等。
function [Accuracy, Sensitivity, Fmeasure, Precision, MCC, Dice, Jaccard, Specitivity] = EvaluateImageSegmentationScores(A, B)
% ===================================================================
% A and B need to be binary images
% A is the ground truth, B is the segmented result.
% MCC - Matthews correlation coefficient
% Note: Sensitivity = Recall
% TP - true positive, FP - false positive,
% TN - true negative, FN - false negative
% If A, B are binary images, but uint8 (0, 255),
% Need to convert to logical images.
if(isa(A,'logical'))
X = A;
else
X = imbinarize(A);
end
if(isa(B,'logical'))
Y = B;
else
Y = imbinarize(B);
end
% Evaluate TP, TN, FP, FN
sumindex = X + Y;
TP = length(find(sumindex == 2));
TN = length(find(sumindex == 0));
substractindex = X - Y;
FP = length(find(substractindex == -1));
FN = length(find(substractindex == 1));
Accuracy = (TP+TN)/(FN+FP+TP+TN);
Sensitivity = TP/(TP+FN);
Precision = TP/(TP+FP);
Fmeasure = 2*TP/(2*TP+FP+FN);
MCC = (TP*TN-FP*FN)/sqrt((TP+FP)*(TP+FN)*(TN+FP)*(TN+FN));
% If you use MATLAB2017b+, you can call: Dice = dice(A, B), but A, B
% need to be converted to the logical form
% If you use MATLAB2017b+, you can call: Jaccard = jaccard(A, B), but
% A, B need to be converted to the logical form
Dice = 2*TP/(2*TP+FP+FN);
Jaccard = Dice/(2-Dice);
Specitivity = TN/(TN+FP);
end
部分理论引用网络文献,若有侵权联系博主删除。