我有一系列的图像。我需要平均这些图像的亮度。
第一个示例(非常慢):
img = cv2.imread('test.jpg') #load rgb image
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) #convert it to hsv
for x in range(0, len(hsv)):
for y in range(0, len(hsv[0])):
hsv[x, y][2] += value
img = cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR)
cv2.imwrite("image_processed.jpg", img)
第二个示例(快速)
hsv += value
这个例子很快,但是它改变了所有的值HSV(我只需要改变V(亮度))
我知道这个问题有点老了,但我想我可以发布对我有效的完整解决方案(通过在255处饱和来处理溢出情况):
这可以如下使用:
^{} 只选择第三个通道,然后修改这些元素-
其他答案建议使用各种numpy魔法“手动”完成饱和,但也可以使用cv2.add()并让OpenCV为您处理:
相关问题 更多 >
编程相关推荐