为了账号安全,请及时绑定邮箱和手机立即绑定

翻转图像后OpenCV putText不起作用

翻转图像后OpenCV putText不起作用

弑天下 2021-11-23 19:20:24
我想从相机中抓取图像并将它们向左/向右翻转,以便视图表现得像一面镜子。但是,我也喜欢在视图中添加一些文本,但事实证明,使用 翻转图像后np.fliplr(frame),cv.putText不再起作用。这是我使用的最小示例python 3.5.2:import numpy as npimport cv2import platformif __name__ == "__main__":    print("python version:", platform.python_version())    cap = cv2.VideoCapture(0)    while(True):        # Capture frame-by-frame        ret, frame = cap.read()        cv2.putText(frame,'Hello World : Before flip',(100, 100), cv2.FONT_HERSHEY_SIMPLEX, 1,(255,255,255),2,cv2.LINE_AA)        frame = np.fliplr(frame)        cv2.putText(frame,'Hello World : After flip',(100, 200), cv2.FONT_HERSHEY_SIMPLEX, 1,(255,255,255),2,cv2.LINE_AA)        # Process the keys        key = cv2.waitKey(1) & 0xFF        if key == ord('q'):            print("quit")            break        # show the images        cv2.imshow('frame',frame)    cap.release()    cv2.destroyAllWindows()带翻转的结果帧:没有翻转的结果帧: 
查看完整描述

1 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

我怀疑这是由于cv2.putText不兼容np.array是的返回值np.fliplr(frame)。我建议你frame = cv2.flip(frame, 1)改用。


import numpy as np

import cv2

import platform


if __name__ == "__main__":

    print("python version:", platform.python_version())

    cap = cv2.VideoCapture(0)

    while(True):

        # Capture frame-by-frame

        ret, frame = cap.read()


        cv2.putText(frame,'Hello World : Before flip',(100, 100), cv2.FONT_HERSHEY_SIMPLEX, 1,(255,255,255),2,cv2.LINE_AA)

        frame = cv2.flip(frame, 1)

        cv2.putText(frame,'Hello World : After flip',(100, 200), cv2.FONT_HERSHEY_SIMPLEX, 1,(255,255,255),2,cv2.LINE_AA)


        # Process the keys

        key = cv2.waitKey(1) & 0xFF

        if key == ord('q'):

            print("quit")

            break

        # show the images

        cv2.imshow('frame',frame)


    cap.release()

    cv2.destroyAllWindows()


查看完整回答
反对 回复 2021-11-23
  • 1 回答
  • 0 关注
  • 413 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信