M9P sensor fixed by MAXMAX - big problem!

I looked at the grey image- the difference is almost 10% between right and left half.

For the Black image- the picture is much brighter than the grey image. It is almost 1/2 of the total scale for a white image, like 50% grey. I would expect "Black" tp be much darker, did you use the same exposure?

It would also help to get a picture of the grey card on a table or something, so I can get a feel for what you used.


black means "done with the black m9p"
gray means "done with the grey mp9"

sorry for the misunderstanding, written english is not my best
 
beware, they are 2 dng from 2 different cameras!

the one with the bigger difference is done by a grey M9P
the oother is from a black m9p of my friend
both of them were sent to MaxMax

the grey one returned with a bigger issue, the black one with a slighty noticeable issue.

tomorrow evening I will post other dng, as you asked

That's a relief! I thought we were going to have to use a Polynomial Fit for the calibration. Not a problem- my code does that...

You can still use a single grey card and under-expose and over-expose, that will be very useful.
 
ahaha!

ok, I will use the same grey target, for both cameras I will shoot 4 pics at different exposures
 
Very interesting thread, a lot of interesting and useful information. Luuca, I hope all turns out well for you!
 
ok, let's start with the M9P grey, the one with the biggest issue.

I did a bracketing (-2/-1/0/+1) and I shoot a general scene of the setup to have some reference point

(I will not mention the dirt on sensor I received from MaxMax :rolleyes: )

Maybe it will take a while before the files are uploaded on my dropbox.

MP9_GREY_-2_L1066681.DNG
https://www.dropbox.com/s/udmlx3ubuepxv4w/MP9_GREY_-2_L1066681.DNG?dl=0

MP9_GREY_-1_L1066680.DNG https://www.dropbox.com/s/y1si4zukn7udm3y/MP9_GREY_-1_L1066680.DNG?dl=0

MP9_GREY_0_L1066679.DNG
https://www.dropbox.com/s/d15jsn1pawsizz2/MP9_GREY_0_L1066679.DNG?dl=0

MP9_GREY_+1_L1066678.DNG
https://www.dropbox.com/s/t49nggftrbgtg9k/MP9_GREY_+1_L1066678.DNG?dl=0

MP9_GREY_SETUP_L1066677.DNG
https://www.dropbox.com/s/ggon5jpbhml87uw/MP9_GREY_SETUP_L1066677.DNG?dl=0
 
Got them- I plan on doing an average over the center section of the image, separate left and right half. Then plot the left vs right value for the 4 images. This should give a slope and offset. If that works, then apply the correction to the images from the camera.

It's a busy week- but will play with this.
 




This is what the problem looks like when plotted out. The slow drift in intensity- probably uneven lighting on the grey card. Slow enough that two small squares (8x8) on each side of the sensor stitch should be close enough to compute a correction.

There is a "Slope", meaning the difference increases with intensity. It is Linear across this intensity range, when the intensity for each calibration point is normalized the difference is about the same.

SO- I think a linear function will greatly reduce the difference between the two halves. Having a +2 and even +3 image would help with the fit, but this is looking reasonable.

Humorous note. I've been using the same Fortran code to make these plots for almost 35 years, got paid on the side to write it- all the way to the device driver level. Paid for my 1990 T-Bird. Nikki used it for her 5th Grade Science Fair project. Her Science Teacher commented on how nice the plots looked.
 
Looks Linear to Me.



POLY COEFFICIENTS FOR "m9slope.dat".
FILE DATE: 26-MAY-2021 14:22.

0.90247 * X+ 15.803.

I also put curve fitting into the graphics program, forgot it could save the coefficients to a file. This is the slope and offset for correcting the image. Will give it a try this week.
 
that's a super work... I'm astonished.
I didn't thought it would be so difficult, with a problem that changes with intensity...

now it's dark, tomorrow I will give you two samples at +2 and +3
 
Found the "Left-Over Feature" in my code that had to be removed. Ouch. I started with a program that converted Color DNG to Linear Monochrome DNG. Whoops. Removed Image Tags that needed to be left in place. Moved one line of code- problem fixed.

Glad I found that.









Full size images are uploaded- they are big. Click to see the full sized images.

Quick and Dirty code, I need to clean it up.

This runs at the command prompt, easiest to run it on the SD card loaded into the computer. Currently it creates a new file starting with a "C" and leaves the original intact. Currently- the coefficients are "hard coded" into the line of code. Will make it read in from a file. It asks for a filename to process, give it a return- processes all files in the directory.

Yet another problem solved using Fortan.
 
WRITE( *, *) 'APPLY NUC CORRECTION '
DO 10 J= 1, ROWS
DO 10 I= 1, COLUMNS/ 2
X= FLOAT( IMAGE( I, J))
Y= X* SLOPE+ OFFSET
BIGVALUE= INT( Y+ 0.5)
IF( BIGVALUE .LT. 0) BIGVALUE= 0
IF( BIGVALUE .GT. 16383) BIGVALUE= 16383
IMAGE( I, J)= VALUE( 1)
10 CONTINUE

The code for the NUC was easy.

Fixing my routine originally written to change image tags in the DNG file to "Linear DNG"... Whoops. Took longer than fixing the non uniformity problem.

Just to add- I suspect that the linear fit will not change much with the Plus 2 and Plus 3 images, but those will help to cover the full intensity range. The Plus 1 of the 18% grey card gives about 25% of saturation.
 
"the code for the NUC was easy"

maybe for you! ��

thanks a lot...
for the second camera doyou have to redo the same work?
 
"the code for the NUC was easy"

maybe for you! ��

thanks a lot...
for the second camera doyou have to redo the same work?

Yes- time to try the corrections for the second camera.

I will clean up the code, and make a "build" for each camera. I'm also going to make the code that generates the slope and offset values more automated.

For anyone with an M Monochrom or M9P with an original sensor: once corrosion has started, the choice is to use it as is, stop using it and buy a new camera, or have MAXMAX replace the cover glass. The problem introduced as shown here- unexpected by everyone, but one that can be fixed.

Last time I wrote code to solve a non-uniformity issue was in 1983. "I still got it, Baby!"
 
Back
Top Bottom