In [30]:
# experiment with Dark Bright image correction
import cv2 
import numpy as np

image = cv2.imread(r"C:\smart_data\Session_CAM\Grid_5_6_9_Unstained\20151023134846236_5_0_-2_3_camJ.tif", cv2.IMREAD_UNCHANGED)
image = 16 * image
w,h = image.shape

iDark = cv2.imread(r"C:\Users\jayb\Pictures\TEMCA\DarkfieldSquareX16.tif", cv2.IMREAD_UNCHANGED)
iBright = cv2.imread(r"C:\Users\jayb\Pictures\TEMCA\BrightfieldSquareX16.tif", cv2.IMREAD_UNCHANGED)
iBrightMinusDark = iBright - iDark
iBrightMinusDarkF32 = np.array(iBrightMinusDark, np.float32)
iImageMinusDark = image - iDark
iImageMinusDarkF32 = np.array (iImageMinusDark, np.float32)

print iImageMinusDarkF32.shape, iImageMinusDarkF32.dtype

iCorrectedF32 = 65764 * (iImageMinusDarkF32 / iBrightMinusDarkF32)
iCorrected = np.array(iCorrected, np.uint16)

clicked = False 
def onMouse( event, x, y, flags, param): 
    global clicked 
    if event == cv2.EVENT_LBUTTONUP: 
        clicked = True 

cv2.namedWindow('MyWindow') 
cv2.setMouseCallback('MyWindow', onMouse) 
print 'Press any key to stop.' 

while cv2. waitKey( 1) == -1 and not clicked: 
    cv2. imshow('MyWindow', iCorrected) 

cv2. destroyWindow('MyWindow')


(3840L, 3840L) float32
Press any key to stop.

In [ ]: