mirror of
https://github.com/ImageMagick/ImageMagick.git
synced 2026-05-31 11:18:42 +02:00
correct SSIM metric
This commit is contained in:
@@ -1772,11 +1772,9 @@ static MagickBooleanType GetStructuralSimilarityDistortion(const Image *image,
|
||||
((reconstruct_traits & UpdatePixelTrait) == 0))
|
||||
continue;
|
||||
distortion[l]*=area;
|
||||
distortion[l]=1.0-distortion[l];
|
||||
}
|
||||
distortion[CompositePixelChannel]*=area;
|
||||
distortion[CompositePixelChannel]/=(double) GetImageChannels(image);
|
||||
distortion[CompositePixelChannel]=1.0-distortion[CompositePixelChannel];
|
||||
kernel_info=DestroyKernelInfo(kernel_info);
|
||||
return(status);
|
||||
}
|
||||
@@ -4119,7 +4117,6 @@ MagickExport Image *SimilarityImage(const Image *image,const Image *reconstruct,
|
||||
case NormalizedCrossCorrelationErrorMetric:
|
||||
case PeakSignalToNoiseRatioErrorMetric:
|
||||
case PhaseCorrelationErrorMetric:
|
||||
case StructuralDissimilarityErrorMetric:
|
||||
{
|
||||
if (similarity > channel_info.similarity)
|
||||
update=MagickTrue;
|
||||
@@ -4153,7 +4150,6 @@ MagickExport Image *SimilarityImage(const Image *image,const Image *reconstruct,
|
||||
case NormalizedCrossCorrelationErrorMetric:
|
||||
case PeakSignalToNoiseRatioErrorMetric:
|
||||
case PhaseCorrelationErrorMetric:
|
||||
case StructuralDissimilarityErrorMetric:
|
||||
{
|
||||
SetPixelChannel(similarity_image,channel,ClampToQuantum((double)
|
||||
QuantumRange*similarity),q);
|
||||
@@ -4178,7 +4174,6 @@ MagickExport Image *SimilarityImage(const Image *image,const Image *reconstruct,
|
||||
case NormalizedCrossCorrelationErrorMetric:
|
||||
case PeakSignalToNoiseRatioErrorMetric:
|
||||
case PhaseCorrelationErrorMetric:
|
||||
case StructuralDissimilarityErrorMetric:
|
||||
{
|
||||
if (similarity_threshold != DefaultSimilarityThreshold)
|
||||
if (channel_info.similarity >= similarity_threshold)
|
||||
|
||||
@@ -1244,7 +1244,6 @@ WandExport MagickBooleanType CompareImagesCommand(ImageInfo *image_info,
|
||||
case NormalizedCrossCorrelationErrorMetric:
|
||||
case PeakSignalToNoiseRatioErrorMetric:
|
||||
case PhaseCorrelationErrorMetric:
|
||||
case StructuralDissimilarityErrorMetric:
|
||||
{
|
||||
similarity_metric=1.0-similarity_metric;
|
||||
break;
|
||||
@@ -1275,6 +1274,11 @@ WandExport MagickBooleanType CompareImagesCommand(ImageInfo *image_info,
|
||||
scale=(double) columns*rows;
|
||||
break;
|
||||
}
|
||||
case StructuralDissimilarityErrorMetric:
|
||||
{
|
||||
distortion=MagickMax(distortion,0.0);
|
||||
break;
|
||||
}
|
||||
case DotProductCorrelationErrorMetric:
|
||||
case PhaseCorrelationErrorMetric:
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user