Compression of Canon CR2 raw images in MATLAB ?

2 views (last 30 days)
Steffen B. Petersen
Steffen B. Petersen on 4 May 2019
Answered: Bray Falls on 15 Jan 2020
I am using my Canon 5D Mark IV to acquire images of star fields. Often in Astro photography the most interesting features have very low intensity compared to the noise level.
The noise level in RAW camera images should not be exposed to compression schemes. I enclose one image above, where the red channel of the image displayed (an astronomical image with a few high intensity stars) is a correct representation of what MATLAB displays - but clearly there is a problem with the lowest intensity levels of the image. It appears as if MATLAB is utilizing lossy compression scheme, which in the appeararance looks like JPEG compression.
I would like to know how to switch off the compression, if anybody knows.
Here is the code used to display the image in MATLAB
[myfile,mypath]=uigetfile({'*.cr2'});
>> mygray2=myim(:,:,1);
>> mytiny2=mygray2(2000:2500,3300:3800);
>> figure(3);
>> imshow(mytiny2,[10 30]);
Below is shown the same image - but processed with PIXINSIGHT - please note the noise background in this image - no lossy compression artefacts, no large square patches- a telltale of compression.
  9 Comments
Walter Roberson
Walter Roberson on 3 Jun 2019
Try adding an index to the imread call. Beyond that I would try with Tiff()

Sign in to comment.

Answers (1)

Bray Falls
Bray Falls on 15 Jan 2020
For sanity purposes I'm letting you know I also experience severe compression effects when loading CR2 files into MATLAB. I am processing solar eclipse images, and after filtering the images they are full of square tiles and other artifacts. Converting to .tiff in pixinsight is fine but I'd like to read the raw file directly.

Community Treasure Hunt

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

Start Hunting!