Using the file hash to verify an image stimulus
Available in post-0.4.4 releases of MWorks, including nightly builds since January 25, 2011
Whenever MWorks displays an image stimulus, information about
the image is logged to the data file in a
#announceStimulus
event. The event data contains two
fields that identify the image file used: filename
,
which contains the full filesystem path to the image file, and
file_hash
, which contains the SHA-1 hash of the image
file.
Unlike the file name (which can be changed easily), the file
hash provides a robust means of determining whether a given image
file was in fact displayed in an experiment. The MWorks Python
package includes a convenient function, file_hash()
,
that computes the hash of a file:
>>> from mworks import file_hash
>>> file_hash('image.png')
'e2e97203031d6c5c018aa8bfb268566a6e2d5b6a'
Alternatively, the openssl
command-line tool can be
used to obtain the file hash:
$ openssl dgst -sha1 image.png
SHA1(image.png)= e2e97203031d6c5c018aa8bfb268566a6e2d5b6a
Once you have the hash for a file, you can compare it to the
file_hash
field in a #announceStimulus
event. If the two hashes are identical, then you can be confident
that the given file is indeed the image that was displayed in your
experiment.