tuoheng_algN/test/ffmpeg11/cv2test.py

108 lines
4.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# import cv2,os
# import time
# import subprocess as sp
# # 图片合并
# # def readImage():
# # p1 = cv2.imread("C:/Users/chenyukun/Pictures/Camera Roll/a.jpg")
# # p2 = cv2.imread("C:/Users/chenyukun/Pictures/Camera Roll/b.jpg")
# # ret = cv2.add(p1, p2)
# # cv2.imwrite(r"C:\Users\chenyukun\Pictures\Camera Roll\aa.jpg", ret)
# #
# # readImage()
# # https://opencv.apachecn.org/#/docs/4.0.0/2.1-tutorial_py_image_display
# if __name__ == "__main__":
# # print(cv2.__version__)
# # # 读取图像
# # p1 = cv2.imread("C:/Users/chenyukun/Pictures/Camera Roll/a.jpg", 0) # 以灰度模式加载图像
# # p2 = cv2.imread("C:/Users/chenyukun/Pictures/Camera Roll/b.jpg", 1) # **cv.IMREAD_COLOR**:加载彩色图像,任何图像的透明度都会被忽略,它是默认标志
# # p3 = cv2.imread("C:/Users/chenyukun/Pictures/Camera Roll/b.jpg", -1) # 加载图像,包括 alpha 通道
# # p4 = cv2.imread("C:/Users/chenyukun/Pictures/Camera Roll/a.jpg")
# # p5 = cv2.imread("C:/Users/chenyukun/Pictures/Camera Roll/c.jpg")
# # print(type(p5))
# # ret = cv2.add(p4, p5)
# # # 显示图像
# # cv2.imshow('frame', p1)
# # cv2.imshow('frame1', p2)
# # cv2.imshow('frame2', p3)
# # # 对显示窗口做调整WINDOW_AUTOSIZE不可调整WINDOW_NORMAL可调整窗口大小
# # cv2.namedWindow('frame3', cv2.WINDOW_AUTOSIZE)
# # cv2.imshow('frame3', ret)
# # # 等待时间 按下任务键
# # k = cv2.waitKey(1) & 0xFF
# # if k == 27: #ESC退出
# # cv2.destroyAllWindows()
# # elif k == ord('s'): # 's' 保存退出
# # # 保存图像
# # cv2.imwrite("C:/Users/chenyukun/Pictures/Camera Roll/d.jpg", ret)
# # cv2.destroyAllWindows()
#
#
#
# # 视频入门
# try:
# cap = cv2.VideoCapture("rtmp://live.play.t-aaron.com/live/THSAf_hd") # 0表示连接一台摄像机
# print(cap.isOpened())
# print(cap)
# except Exception as e:
# print(e)
# raise e
# print("aaaa")
# # 有时cap 可能没有初始化 capture。在这种情况下此代码显示错误。你可以通过该方法 cap.isOpened() 检查它是否初始化。
# # 如果它是 True那么是好的否则用 cap.open() 打开在使用。
# fps = int(cap.get(cv2.CAP_PROP_FPS))
# width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
# height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
# print(fps,width,height)
# # # 设置宽
# # print(cap.set(cv2.CAP_PROP_FRAME_WIDTH, 320))
# # # 设置高
# # print(cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 240))
#
# # 声明编码器和创建 VideoWrite 对象
# fourcc = cv2.VideoWriter_fourcc(*'mp4v')
# out = cv2.VideoWriter('/home/DATA/dsp/ai/video/eee.mp4',fourcc, fps, (width, height))
# command=['/usr/bin/ffmpeg',
# '-y', # 覆盖输出文件
# '-f', 'rawvideo', # 强迫采用格式fmt
# '-vcodec','rawvideo',
# '-pix_fmt', 'bgr24',
# '-s', "{}x{}".format(640, 480),# 图片分辨率
# '-r', str(25.0),# 视频帧率
# '-i', '-',
# '-c:v', 'libx264',
# '-pix_fmt', 'yuv420p',
# '-preset', 'ultrafast',
# '-f', 'flv',
# "rtmp://live.push.t-aaron.com/live/THSAb"]
# # p = sp.Popen(command, stdin=sp.PIPE)
# start = time.time()
# while True:
#
# try:
# if not cap.isOpened():
# cap = cv2.VideoCapture("rtmp://live.play.t-aaron.com/live/THSAf_hd")
# continue
# # 一帧一帧捕捉
# ret, frame = cap.read() # 返回一个 bool 值(True/False)。如果加载成功它会返回True
# if not ret:
# cap = cv2.VideoCapture("rtmp://live.play.t-aaron.com/live/THSAf_hd")
# continue
# # print(ret) #True
# # # 我们对帧的操作在这里
# # gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# end = time.time()
# print("bbbbbbbbb")
# # p.stdin.write(frame.tostring())
# # print("aaaaa")
# out.write(frame)
# except Exception as e:
# raise e
# # # 显示返回的每帧
# # cv2.imshow('frame',gray)
# # if cv2.waitKey(1) & 0xFF == ord('q'):
# # break
# # 当所有事完成,释放 VideoCapture 对象
# cap.release()
# out.release()
# cv2.destroyAllWindows()