Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

After looking at the code it appears that the function MergeDebevec :: process called without the third argument response uses a linear response function. I was able to reproduce this by creating a linear answer as the third argument, the result is the same. I think the documentation should make it clear. What is strange is that in my case the result is better than calibrating the response of the camera!

After looking at the code it appears that the function MergeDebevec :: process called without the third argument response uses a linear response function. I was able to reproduce this by creating a linear answer as the third argument, the result is the same. I think the documentation should make it clear. What is strange is that in my case the result is better than calibrating the response of the camera!

c=np.arange(256).astype(np.float32)
    linear=np.zeros((256,1,3)).astype(np.float32)
    linear[:,0,0] = c
    linear[:,0,1] = c
    linear[:,0,2] = c
    linear[0,:,:] = linear[1,:,:]
    calibrate = cv.createCalibrateDebevec()
    response = calibrate.process(images, times)
    merge_debevec = cv.createMergeDebevec()
    hdr_1 = merge_debevec.process(images, times, linear)

Gives the same result as:

hdr_2 = merge_debevec.process(images, times)

After looking at the code it appears that the function MergeDebevec :: process called without the third argument response uses a linear response function. I was able to reproduce this by creating a linear answer as the third argument, the result is the same. I think the documentation should make it clear. What is strange is that in my case the result is better than calibrating the response of the camera!

 c=np.arange(256).astype(np.float32)
    linear=np.zeros((256,1,3)).astype(np.float32)
    linear[:,0,0] = c
    linear[:,0,1] = c
    linear[:,0,2] = c
    linear[0,:,:] = linear[1,:,:]
    calibrate = cv.createCalibrateDebevec()
    response = calibrate.process(images, times)
    merge_debevec = cv.createMergeDebevec()
    hdr_1 = merge_debevec.process(images, times, linear)

Gives the same result as:

hdr_2 = merge_debevec.process(images, times)

After looking at the code it appears that the function MergeDebevec :: process called without the third argument response uses a linear response function. I was able to reproduce this by creating a linear answer as the third argument, the result is the same. I think the documentation should make it clear. What is strange is that in my case the result is better than calibrating the response of the camera!

    c=np.arange(256).astype(np.float32)
    linear=np.zeros((256,1,3)).astype(np.float32)
    linear[:,0,0] = c
    linear[:,0,1] = c
    linear[:,0,2] = c
    linear[0,:,:] = linear[1,:,:]
    calibrate = cv.createCalibrateDebevec()
    response = calibrate.process(images, times)
    merge_debevec = cv.createMergeDebevec()
    hdr_1 = merge_debevec.process(images, times, linear)

Gives the same result as:

hdr_2 = merge_debevec.process(images, times)

After looking at the code it appears that the function MergeDebevec :: process called without the third argument response uses a linear response function. I was able to reproduce this by creating a linear answer as the third argument, the result is the same. I think the documentation should make it clear. What is strange is that in my case the result is better than calibrating the response of the camera!

    c=np.arange(256).astype(np.float32)
    linear=np.zeros((256,1,3)).astype(np.float32)
    linear[:,0,0] = c
    linear[:,0,1] = c
    linear[:,0,2] = c
    linear[0,:,:] = linear[1,:,:]
    merge_debevec = cv.createMergeDebevec()
    hdr_1 = merge_debevec.process(images, times, linear)

Gives the same result as:

hdr_2 = merge_debevec.process(images, times)