possible bug -metric fuzz using convert IM 6.9.8.0 Q16 Mac OSX

Post any defects you find in the released or beta versions of the ImageMagick software here. Include the ImageMagick version, OS, and any command-line required to reproduce the problem. Got a patch for a bug? Post it here.
Post Reply
User avatar
fmw42
Posts: 25562
Joined: 2007-07-02T17:14:51-07:00
Authentication code: 1152
Location: Sunnyvale, California, USA

possible bug -metric fuzz using convert IM 6.9.8.0 Q16 Mac OSX

Post by fmw42 »

See first pair of images at viewtopic.php?f=2&t=31535#p143599


Two issues:

1) compare and convert methods do not agree for metric fuzz or metric rmse, when there is transparency

2) for -metric rmse, results are not the same with and without transparency


-metric fuzz is supposed to take transparency into account. I am not sure what that means. Nevertheless I get different results from:

Code: Select all

convert ed3k2rBk7HZzJccH98x9.png qTCKVKFPImX2BcpnSV3d.png +repage -resize 256x256^! miff:- |\
compare -metric fuzz - null:
21586.8 (0.329394)

Code: Select all

convert ed3k2rBk7HZzJccH98x9.png qTCKVKFPImX2BcpnSV3d.png +repage -resize 256x256^! -metric fuzz -format %[distortion] -compare info:
0.182687

Is this a bug with the latter or am I misunderstanding the difference between the two methods and/or what -metric fuzz is doing?

Does -metric fuzz compare all 4 channels RGBA separately and compute the 4 channel fuzz (rmse) value? Or is it blending with alpha?

What is -metric rmse supposed to do if alpha is present?


Note if I use metric rmse, then I still get different results

Code: Select all

convert ed3k2rBk7HZzJccHmX2BcpnSV3d.png +repage -resize 256x256^! miff:- |\
> compare -metric rmse - null:
18694.8 (0.285264)

Code: Select all

convert ed3k2rBk7HZzJccH98x9.png qTCKVKFPImX2BcpnSV3d.png +repage -resize 256x256^! -metric rmse -format %[distortion] -compare info:
0.182687

The latter using -metric rmse gives the same answer as the second -metric fuzz. So it seems that -metric fuzz is not taking into account the alpha channel, if it is supposed to and if -metric rmse is not supposed to.

If I turn alpha off on -metric rmse, then I get

Code: Select all

convert ed3k2rBk7HZzJccH98x9.png qTCKVKFPImX2BcpnSV3d.png +repage -alpha off -resize 256x256^! miff:- |\
compare -metric rmse - null:
49685.2 (0.758148)

Code: Select all

convert ed3k2rBk7HZzJccH98x9.png qTCKVKFPImX2BcpnSV3d.png +repage -alpha off -resize 256x256^! -metric rmse -format %[distortion] -compare info:
0.758141

These two values agree, but do not agree with when alpha is on. So what is the alpha channel doing with -metric rmse, if it is not supposed to take transparency into account?
User avatar
magick
Site Admin
Posts: 11064
Joined: 2003-05-31T11:32:55-07:00

Re: possible bug -metric fuzz using convert IM 6.9.8.0 Q16 Mac OSX

Post by magick »

Download the latest beta release and add -channel rgba to your command line. Do you now get expected results?
User avatar
fmw42
Posts: 25562
Joined: 2007-07-02T17:14:51-07:00
Authentication code: 1152
Location: Sunnyvale, California, USA

Re: possible bug -metric fuzz using convert IM 6.9.8.0 Q16 Mac OSX

Post by fmw42 »

What is the expected behavior for -metric rmse and metric fuzz when alpha is available? That is how is alpha treated with or without -channel rgba for the two metrics?
User avatar
magick
Site Admin
Posts: 11064
Joined: 2003-05-31T11:32:55-07:00

Re: possible bug -metric fuzz using convert IM 6.9.8.0 Q16 Mac OSX

Post by magick »

ImageMagick defaults in IMv6 to just the RGB channel so it should ignore the alpha channel unless you specifify -channel RGBA. However, make sure you have the latest 6.9.8-1 beta before you test.
User avatar
fmw42
Posts: 25562
Joined: 2007-07-02T17:14:51-07:00
Authentication code: 1152
Location: Sunnyvale, California, USA

Re: possible bug -metric fuzz using convert IM 6.9.8.0 Q16 Mac OSX

Post by fmw42 »

IM 6.9.8.1 Q16 beta Mac OSX

Without -channel rgba:

metric -fuzz shows different results for the two methods

Code: Select all

im6beta convert ed3k2rBk7HZzJccH98x9.png qTCKVKFPImX2BcpnSV3d.png +repage -resize 256x256^! miff:- | im6beta compare -metric fuzz - null:
18694.8 (0.285264)

Code: Select all

im6beta convert ed3k2rBk7HZzJccH98x9.png qTCKVKFPImX2BcpnSV3d.png +repage -resize 256x256^! -metric fuzz -format %[distortion] -compare info:
0.182687


metric -rmse shows different results for the two methods But each match -metric fuzz

Code: Select all

im6beta convert ed3k2rBk7HZzJccH98x9.png qTCKVKFPImX2BcpnSV3d.png +repage -resize 256x256^! miff:- | im6beta compare -metric rmse - null:
18694.8 (0.285264)

Code: Select all

im6beta convert ed3k2rBk7HZzJccH98x9.png qTCKVKFPImX2BcpnSV3d.png +repage -resize 256x256^! -metric rmse -format %[distortion] -compare info:
0.182687


With -channel rgba:

-metric fuzz now shows the same results for both methods

Code: Select all

im6beta convert ed3k2rBk7HZzJccH98x9.png qTCKVKFPImX2BcpnSV3d.png +repage -resize 256x256^! miff:- | im6beta compare -channel rgba -metric fuzz - null:
18694.8 (0.285264) same result as without -channel rgba

Code: Select all

im6beta convert ed3k2rBk7HZzJccH98x9.png qTCKVKFPImX2BcpnSV3d.png +repage -resize 256x256^! -channel rgba -metric fuzz -format %[distortion] -compare info:
0.285254


-metric rmse now shows the same results for both methods But the same as -metric fuzz

Code: Select all

im6beta convert ed3k2rBk7HZzJccH98x9.png qTCKVKFPImX2BcpnSV3d.png +repage -resize 256x256^! miff:- | im6beta compare -channel rgba -metric rmse - null:
18694.8 (0.285264)

Code: Select all

im6beta convert ed3k2rBk7HZzJccH98x9.png qTCKVKFPImX2BcpnSV3d.png +repage -resize 256x256^! -channel rgba -metric rmse -format %[distortion] -compare info:
0.285254

So there are still issues and questions:

1) Why is -metric rmse and -metric fuzz each giving different results from the two approaches when alpha is present but not using -channel rgba?

2) Why is -metric rmse and -metric fuzz not different when using -channel rgba. I though only -metric fuzz was alpha sensitive

3) Why isn't alpha just ignored for -metric fuzz and especially -metric rmse if not using -channel rgba. What does compare do in the presence of an alpha channel if -channel rgba is not enabled?
User avatar
fmw42
Posts: 25562
Joined: 2007-07-02T17:14:51-07:00
Authentication code: 1152
Location: Sunnyvale, California, USA

Re: possible bug -metric fuzz using convert IM 6.9.8.0 Q16 Mac OSX

Post by fmw42 »

I get quite a different result from either method if I disable alpha

Code: Select all

im6beta convert ed3k2rBk7HZzJccH98x9.png qTCKVKFPImX2BcpnSV3d.png +repage -alpha off -resize 256x256^! miff:- | im6beta compare -metric rmse - null:
49685.2 (0.758148)

Code: Select all

im6beta convert ed3k2rBk7HZzJccH98x9.png qTCKVKFPImX2BcpnSV3d.png +repage -alpha off -resize 256x256^! -metric rmse -format %[distortion] -compare info:
0.758148

Should this not agree with one of the two approaches when not using -channel rgba?
User avatar
fmw42
Posts: 25562
Joined: 2007-07-02T17:14:51-07:00
Authentication code: 1152
Location: Sunnyvale, California, USA

Re: possible bug -metric fuzz using convert IM 6.9.8.0 Q16 Mac OSX

Post by fmw42 »

Results in IM 6.9.8.1 beta and IM 7.0.5-3 beta are now consistent. But note that IM 6 has -channel rgb as the default for compare and IM 7 has -channel rgba for the default in compare. -metric fuzz and -metric rmse are the same for -fuzz 0 in -metric fuzz. When using -channel rgba, the compare will use 4 channels. When using -channel rgb, the compare will use only 3 channels. When using -channel rgba and -alpha off, the alpha will be set to fully opaque and the compare will use 4 channels. Now both compare and convert -compare give the same results.

rmse; default

Code: Select all

im7beta magick ed3k2rBk7HZzJccH98x9.png qTCKVKFPImX2BcpnSV3d.png +repage -resize 256x256^! miff:- | im7beta magick compare -metric rmse - null:
18727.4 (0.285761)  <--- note uses -channel rgba as default

im6beta convert ed3k2rBk7HZzJccH98x9.png qTCKVKFPImX2BcpnSV3d.png +repage -resize 256x256^! miff:- | im6beta compare -metric rmse - null:
11972.9 (0.182694)  <--- note uses -channel rgb as default

im7beta magick ed3k2rBk7HZzJccH98x9.png qTCKVKFPImX2BcpnSV3d.png +repage -resize 256x256^! -metric rmse -format %[distortion] -compare info:
0.285874  <--- note uses -channel rgba as default

im6beta convert ed3k2rBk7HZzJccH98x9.png qTCKVKFPImX2BcpnSV3d.png +repage -resize 256x256^! -metric rmse -format %[distortion] -compare info:
0.182687  <--- note uses -channel rgb as default

# rmse; alpha off

Code: Select all

im7beta magick ed3k2rBk7HZzJccH98x9.png qTCKVKFPImX2BcpnSV3d.png +repage -alpha off -resize 256x256^! miff:- | im7beta magick compare -metric rmse - null:
49691.4 (0.758242)

im6beta convert ed3k2rBk7HZzJccH98x9.png qTCKVKFPImX2BcpnSV3d.png +repage -alpha off -resize 256x256^! miff:- | im6beta compare -metric rmse - null:
49685.2 (0.758148)

im7beta magick ed3k2rBk7HZzJccH98x9.png qTCKVKFPImX2BcpnSV3d.png +repage -alpha off -resize 256x256^! -metric rmse -format %[distortion] -compare info:
0.759269

im6beta convert ed3k2rBk7HZzJccH98x9.png qTCKVKFPImX2BcpnSV3d.png +repage -alpha off -resize 256x256^! -metric rmse -format %[distortion] -compare info:
0.758141


# rmse: rgb

Code: Select all

im7beta magick ed3k2rBk7HZzJccH98x9.png qTCKVKFPImX2BcpnSV3d.png +repage -resize 256x256^! miff:- | im7beta magick compare -channel rgb -metric rmse - null:
11973.6 (0.182706)

im6beta convert ed3k2rBk7HZzJccH98x9.png qTCKVKFPImX2BcpnSV3d.png +repage -resize 256x256^! miff:- | im6beta compare -channel rgb -metric rmse - null:
11972.9 (0.182694)

im7beta magick ed3k2rBk7HZzJccH98x9.png qTCKVKFPImX2BcpnSV3d.png +repage -resize 256x256^! -channel rgb -metric rmse -format %[distortion] -compare info:
0.182777

im6beta convert ed3k2rBk7HZzJccH98x9.png qTCKVKFPImX2BcpnSV3d.png +repage -resize 256x256^! -channel rgb -metric rmse -format %[distortion] -compare info:
0.182687


# rmse: rgba

Code: Select all

im7beta magick ed3k2rBk7HZzJccH98x9.png qTCKVKFPImX2BcpnSV3d.png +repage -resize 256x256^! miff:- | im7beta magick compare -channel rgba -metric rmse - null:
18727.4 (0.285761)

im6beta convert ed3k2rBk7HZzJccH98x9.png qTCKVKFPImX2BcpnSV3d.png +repage -resize 256x256^! miff:- | im6beta compare -channel rgba -metric rmse - null:
18694.8 (0.285264)

im7beta magick ed3k2rBk7HZzJccH98x9.png qTCKVKFPImX2BcpnSV3d.png +repage -resize 256x256^! -channel rgba -metric rmse -format %[distortion] -compare info:
0.285874

im6beta convert ed3k2rBk7HZzJccH98x9.png qTCKVKFPImX2BcpnSV3d.png +repage -resize 256x256^! -channel rgba -metric rmse -format %[distortion] -compare info:
0.285254
Post Reply