【问题标题】:OpenCV camera capture no lightOpenCV相机捕捉到没有光
【发布时间】:2020-08-14 10:23:21
【问题描述】:

我正在尝试使用 Mac 上的网络摄像头拍照。我正在使用 OpenCV 这样做。但是,如果房间里的灯是关的,画面就会非常暗。有什么方法可以使用“闪光灯”让光线进入图像?或者还有其他方法可以让图像中的光线进入吗?

如果您有任何问题或需要更多信息,请随时提问。

这是我的拍照代码:

import cv2

camera = cv2.VideoCapture(0)
input('Press Enter to capture')
return_value, image = camera.read()
cv2.imwrite('opencv'+'.png', image)
del(camera)

【问题讨论】:

  • 使用闪光灯是指在拍摄过程中将屏幕全白?
  • 是的,如果房间里的灯关了,这样的东西可以确保图片不暗。 @thibsc

标签: python opencv


【解决方案1】:

您可以在屏幕上显示一个白色图像来“闪光”:

import cv2
import numpy as np

flash_lite = np.ones((1080,1920), np.uint8) * 255

camera = cv2.VideoCapture(0)
input('Press Enter to capture')

cv2.namedWindow ('flash', cv2.WINDOW_NORMAL)
cv2.setWindowProperty ('flash', cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN)
cv2.imshow ('flash', flash_lite)
cv2.waitKey(100)

return_value, image = camera.read()
cv2.destroyWindow('flash')

cv2.imwrite('opencv.png', image)

【讨论】:

  • 这很有帮助,但我无法弹出任何其他屏幕,因为该程序旨在检测我在执行任务时是否自动闭上眼睛。
  • 您想要一个闪存但有问题?准确解释你想要达到的目标,没有这个就很难提供帮助。我看不出有什么问题,如果您在此闪光灯期间拍照并在完成后关闭
  • 如果你想参考一下,当你在 Mac 的 PhotoBooth 上拍照时,在拍照前屏幕会闪烁,有没有这样的功能?我只需要给图片带来光@thibsc
  • @Akkfic,我更新了我的答案给你一个完整的例子。我试过了,即使闪光灯不是很强大,它也对我有用,但它可以照亮图片
【解决方案2】:

因为您总是打开屏幕。可以增加相机亮度

cam.set(cv2.CAP_PROP_BRIGHTNESS, brightness)

您可以使用此功能从相机获取当前亮度

brightness = cam.set(cv2.CAP_PROP_BRIGHTNESS.get(10)

那就试试亮度玩

请注意,这会影响您的图像处理。为此最好使用 USB 光源。

更多控制可以参考this

我没有 MAc 也许你可以考虑this 如果可以从你的 python 创建脚本调用

【讨论】:

  • 我现在就试试这个。最后的第二个括号是类型吗? @文娟
  • 不幸的是,这没有帮助。在黑暗的房间中拍摄时,照片仍然很暗。 @文娟
  • 你可以尝试增加 CAP_PROP_EXPOSURE 但我仍然认为你的应用需要一个光源
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-13
  • 2017-02-10
  • 1970-01-01
  • 2016-01-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多