捕获视频的颜色直方图均衡化

0 投票
1 回答
1861 浏览
提问于 2025-04-17 20:44

我有一段代码,用来对从摄像头捕获的视频进行直方图均衡化。这个过程是在把视频转换成灰度图后,用OpenCV 2.3.1和Python在Debian Linux上实现的。

cap=cv2.VideoCapture(0)

while(True):
  ret, frame=cap.read()
  cv2.imshow('frame', frame)
  if (cap.isOpened()):
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    gray = cv2.equalizeHist(gray)
    cv2.imshow('frame',gray)
    if cv2.waitKey(1) & 0xFF == ord('q'):
      break

cap.release()
cv2.destroyAllWindows()

我想做的是,不再把视频转换成灰度图,而是想把它转换成HSI颜色空间。然后只对亮度这个参数进行均衡化,最后把处理好的视频写回到文件中。如果有人能帮忙就太好了。

1 个回答

1

我不太确定OpenCV是否有直接将RGB转换为HSI的功能(你可以考虑使用HSV或HSL)。在转换完图像后,可以使用“split”这个函数。我没有在Python中使用OpenCV,但在C++中,“split”函数会返回一个包含所有通道(比如H、S和V)的Mat图像的向量。之后,你可以对你想要的通道进行操作,然后使用“merge”函数将结果合并起来(你需要把一组图像传给这个函数,它会返回合并后的结果图像)。

希望这对你有帮助!

撰写回答