Instead of reading the entire file, you should read just the TIFF header in each file. I'm not certain off hand if that's supported in Image::Magick, but you can get head start on reading the header
.
In essense, you need to scan for the tags in the header which indicate the image boundries. Reading just the header should be VERY fast.