我目前正在尝试使用OpenCV的python包装器进行一些HDR处理。
import cv2
import numpy as np
img = cv2.imread("1.jpg")
img2 = cv2.imread("2.jpg")
img3 = cv2.imread("3.jpg")
images = [img, img2, img3]
times = [-2, 0, 2]
response = np.zeros(256)
import ipdb; ipdb.set_trace()
calibrate = cv2.createCalibrateDebevec()
calibrate.process(images, response, times)
ipdb> calibrate.process(images, response, times)
*** TypeError: dst is not a numpy array, neither a scalar
它说基于位置的代码中的dst或“response”不是numpy数组,而是检查“response”的类型,显然是这样。
ipdb> type(response)
<type 'numpy.ndarray'>
最佳答案
你应该使用电话
calibrate.process(images, times, response)
要么
response = calibrate.process(images, times)
代替
calibrate.process(images, response, times)
因为python
CalibrateDebevec
的process
成员签名如下:process(src, times[, dst]) -> dst
可以使用以下方法简单确定:
import inspect
print(inspect.getdoc(calibrate.process))
关于python - OpenCV createCalibrateDebevec.process给了我 “dst is not a numpy array, neither a scalar”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34326939/