【问题标题】:Time Overlay on WebCam Stream网络摄像头流上的时间叠加
【发布时间】:2019-08-27 18:18:36
【问题描述】:

我想在图像上编码或添加时间戳。因为这是在远程设备上运行的 Web 应用程序的一部分。解决这个问题的最佳方法是什么?如何使用 cv2 将 time.time() 添加到图像本身。

如果有其他建议,欢迎提出建议

class CameraDevice():
    def __init__(self):
        self.cap = cv2.VideoCapture(0)
        self.time = time() #timestamp
        self.cap.set(3, 640)
        self.cap.set(4, 480)

def rotate(self, frame):
    if flip:
        (h, w) = frame.shape[:2]
        center = (w/2, h/2)
        M = cv2.getRotationMatrix2D(center, 180, 1.0)
        frame = cv2.warpAffine(frame, M, (w, h))
    return frame

async def get_latest_frame(self):
    ret, frame = self.cap.read()
    await asyncio.sleep(0)
    return self.rotate(frame)

async def get_jpeg_frame(self):
    encode_param = (int(cv2.IMWRITE_JPEG_QUALITY), 90)
    frame = await self.get_latest_frame()
    frame, encimg = cv2.imencode('.jpg', frame, encode_param)
    return encimg.tostring()

【问题讨论】:

标签: python opencv gstreamer


【解决方案1】:

您可以使用 PIL 在每一帧上添加一个日期。

from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont

...
pil_frame = Image.fromarray(img)
drawing = ImageDraw.Draw(pil_frame)
black = (3, 8, 12)
font = ImageFont.truetype("Pillow/Tests/fonts/FreeMono.ttf", 40)
drawing.text(pos, text, fill=black, font=font)
...

查看此链接:http://www.blog.pythonlibrary.org/2017/10/17/how-to-watermark-your-photos-with-python/

【讨论】:

  • 我正在更多地研究将时间覆盖添加到 cv2 构造函数上的视频。这是一条完全不同的道路。不过谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-24
  • 2012-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-15
  • 2013-05-14
相关资源
最近更新 更多