Corrupt Image

7 views (last 30 days)
Ron Lewis
Ron Lewis on 23 Feb 2012
Answered: Sergio on 17 Jan 2023
What does this warning mean:
Warning: The image file directory at offset position 38 has zero entries and has been ignored. The file may be corrupt.
The warning is issued when an image(jpg) is read.

Accepted Answer

John
John on 24 Feb 2012
When IMFINFO encounters a JPEG file, it will try to determine if the JPEG has exif metadata, which is stored in the APP1 segment of the JPEG and has the same structure as TIFF metadata.
It would seem that IMFINFO detected the setup for exif in the APP1 segment, but then no tags were actually found.

More Answers (4)

Walter Roberson
Walter Roberson on 23 Feb 2012
The error would make more sense to me if it was a TIFF file instead of JPEG.
Is the file possibly JPEG 2000 rather than basic JPEG? If so, which MATLAB version are you using?
Which MATLAB command are you using to read the file?
Do other programs have difficulty reading the file?
  3 Comments
Walter Roberson
Walter Roberson on 23 Feb 2012
Does imread() also display the warning?
Interestingly, the other hits I see on this topic also involve offset 38. There was no explanation for the cause in the other questions about it.
The other questions dated from 2004. Is your MATLAB version quite old perhaps?
Vlad Atanasiu
Vlad Atanasiu on 3 May 2015
I had this problem when saving an image from Photoshop. I solved it by opening and saving the image with Illustrator. (R2014b)

Sign in to comment.


Siddha Nagasai
Siddha Nagasai on 21 May 2015
Edited: Walter Roberson on 21 May 2015
i also got the same warning with the number 20 where my dataset size is 30 images and my matlab version is matlab R2010a
what should i do to get rid of this warning...????please tell me fast...

Vrushali Lanjewar
Vrushali Lanjewar on 4 Dec 2020
Edited: Vrushali Lanjewar on 4 Dec 2020
When I run the LSTM example while Displaying images in dataset with 20 classes containing more than 1000 images and I assigned
numImages=100; then it gives warning ; That meas we are assigning less number of images
whereas
when I assigned again
numImages=1000 ; then program run successfully...
You need to check the number of images in dataset before assigning a variable.

Sergio
Sergio on 17 Jan 2023
I solved it by opening and saving again the images with a web image editor, in my case i used pixlr, but i guess more editors will work.

Categories

Find more on Get Started with MATLAB in Help Center and File Exchange

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!