簡體   English   中英

在OpenCV中將幀從相機寫入單個圖像

[英]Write frames from camera to a single image in OpenCV

我試圖從相機中抓取幀並將它們添加到單個圖像中以獲得此圖像中的效果: http//www.danheller.com/images/California/DeathValley/Nite/tent-star-trails.jpg

但是我的圖像在幾秒鍾后變成了白色。 這是代碼:

#!/usr/bin/python
import cv
stream = cv.CaptureFromCAM(0)
cv.NamedWindow("Stream",1)
out = cv.CreateImage((640, 480), 8, 3)
while True:
  frame = cv.QueryFrame(stream)
  cv.Add(frame, out, out, None)
  cv.ShowImage("Stream", out)
  cv.WaitKey(25)

有人可以幫忙嗎?

是的,您的圖像會在幾幀后變為白色,因為逐個像素地添加圖像會使亮度增加很多。 你必須想出一個更好的算法來將圖像合並在一起。

您可以這樣做的一種方法是添加兩個圖像,然后在添加更多圖像之前對結果圖像進行標准化,或者如果您要添加大量幀,則只需將圖像的像素值的小倍數(0.01)添加到結果中對每個幀進行成像,但同樣,對結果圖像進行標准化,使暗像素保持黑暗。 這有效地模擬了使用真實相機創建的長曝光效果。

真正的相機通過非常低的曝光設置來創建該效果,因此只有少數光子一次進入鏡頭,因此當您將相機靜止一段時間時,越來越多的照片會照到膠片並最終使照片變亮。 如果你離開相機足夠長的時間。 如果您將相機放置太久,相同的事情將發生在圖片上,它會變白。 直接添加圖片就像曝光非常高,大量光線一次進入鏡頭,圖片變白。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM