You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于OpenCV提升弱光图像拍摄效果的技术方案咨询

利用OpenCV提升弱光下鲑鱼洄游视频拍摄效果的咨询

我们使用结合OpenCV的Python脚本记录鲑鱼洄游视频,以此估算鱼道总通行量,相关脚本如下:

import cv2
import numpy as np
import time
import datetime
import pathlib
import imutils
import os
import shutil
import socket

szPlacename = 'Yukon River'
iCaptureDuration = 600
iFramesPerSec = 3
szFramesPerSec = str(iFramesPerSec)
cap = cv2.VideoCapture(0)
iSleepDuration = 0
iFrameWidth = 1024
iFrameHeight = 768
szFrameWidth = str(iFrameWidth)
szFrameHeight = str(iFrameHeight)
szComputerName = socket.gethostname()
iTotal, iUsed, iFree = shutil.disk_usage("/")
iPercent = 100 * iUsed / iTotal
iPercent = round(iPercent, 1)
szPercent = str(iPercent)+"%"
font = cv2.FONT_HERSHEY_COMPLEX_SMALL
if (cap.isOpened() == False): 
  print("Unable to read camera feed")
  pathlib.Path(('C:\\LZ\\')+szPlacename+"-"+(datetime.datetime.now().strftime("%Y%m%d"))).mkdir(parents=True, exist_ok=True)
out = cv2.VideoWriter('C:\\LZ\\'+szPlacename+"-"+datetime.datetime.now().strftime("%Y%m%d")+'/'+datetime.datetime.now().strftime("%Y%m%d%H%M%S") + " "+ szPlacename + '_StarLink.avi',cv2.VideoWriter_fourcc('m','j','p','g'),iFramesPerSec, (iFrameWidth,iFrameHeight))
iPrev = 0
iStartTime = time.time()
while( int(time.time() - iStartTime) < iCaptureDuration ):
#start fps
  iTimeElapsed = time.time() - iPrev
  while(iTimeElapsed > 1./iFramesPerSec):                 
    ret, frame = cap.read()
    if not ret:
      break
    if iTimeElapsed > 1./iFramesPerSec:
      iPrev = time.time()
      szDateTime = str(datetime.datetime.now())
      szDateTime = szDateTime[0:22]
    if ret==True:
      frame = imutils.resize(frame, width=iFrameWidth)
      frame = cv2.putText(frame,"Laptop: "+szComputerName+", HD used= "+szPercent+", FPS= "+szFramesPerSec+", Size(px)= "+szFrameWidth+"x"+szFrameHeight,(10,90),font, 1,(0,255,255),2,cv2.LINE_8)
      frame = cv2.putText(frame,"Location: "+szPlacename +", Time: "+ szDateTime,(10,120),font, 1,(0, 255, 255),2,cv2.LINE_8)
      out.write(frame)
      cv2.imshow('frame',frame) 
    if cv2.waitKey(1) & 0xFF == ord('q'):
      break
    else:
       break 
cap.release()
out.release()
cv2.destroyAllWindows()

鲑鱼洄游昼夜均会发生,我们已安装水下灯辅助夜间计数,目前已拍摄到黄昏及夜间时段的视频。

当前使用的是从AliExpress采购的USB ELP 1080P弱光(0.01lux)30fps H.264 IMX323工业机器视觉相机,现咨询:OpenCV还有哪些可利用的特性能够提升弱光图像的拍摄效果?

内容的提问来源于stack exchange,提问作者portsample

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 18:50:23