MATLAB: Does the 16 bit grayscale JPEG not open outside MATLAB

MATLAB

I am creating a 16-bit JPG file using IMWRITE:
X = uint16(65535 * rand(1024,1024));
imwrite(X,'noise.jpg','jpeg','BitDepth',16,'Quality',100);
However, I can only access and use the file in MATLAB. All other programs outside MATLAB recognize the file as corrupt.

Best Answer

The 16-bit grayscale JPEG file being created is not corrupt, but 16-bit lossless grayscale files are supported in such a limited fashion (mostly used inside DICOM files) that most applications that support reading and writing JPEG files do not read these properly.
If you need to save 16-bit grayscale image data, TIFF format is a much better choice.