# 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()