第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用 opencv 調(diào)整視頻大小并保存

使用 opencv 調(diào)整視頻大小并保存

LEATH 2023-07-18 10:39:24
我正在嘗試使用 opencv 重新調(diào)整視頻大小,然后將其保存回我的系統(tǒng)。代碼有效并且不會(huì)給出任何錯(cuò)誤,但輸出視頻文件已損壞。我使用的 fourcc 是 mp4v,與 .mp4 配合良好,但輸出視頻仍然損壞。需要幫忙。import numpy as np    import cv2    import sys    import re    vid=""        if len(sys.argv)==3:        vid=sys.argv[1]        compress=int(sys.argv[2])    else:        print("File not mentioned or compression not given")        exit()        if re.search('.mp4',vid):        print("Loading")    else:        exit()        cap = cv2.VideoCapture(0)    ret, frame = cap.read()        def rescale_frame(frame, percent=75):        width = int(frame.shape[1] * percent/ 100)        height = int(frame.shape[0] * percent/ 100)        dim = (width, height)        return cv2.resize(frame, dim, interpolation =cv2.INTER_AREA)        FPS= 15.0    FrameSize=(frame.shape[1], frame.shape[0])    fourcc = cv2.VideoWriter_fourcc(*'mp4v')        out = cv2.VideoWriter('Video_output.mp4', fourcc, FPS, FrameSize, 0)        while(cap.isOpened()):        ret, frame = cap.read()            # check for successfulness of cap.read()        if not ret: break                rescaled_frame=rescale_frame(frame,percent=compress)        # Save the video        out.write(rescaled_frame)            cv2.imshow('frame',rescaled_frame)        if cv2.waitKey(1) & 0xFF == ord('q'):             break        cap.release()    out.release()    cv2.destroyAllWindows()
查看完整描述

1 回答

?
翻翻過(guò)去那場(chǎng)雪

TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個(gè)贊

問(wèn)題是VideoWriter初始化。


您初始化了:


out = cv2.VideoWriter('Video_output.mp4', fourcc, FPS, FrameSize, 0)

最后一個(gè)參數(shù)的0意思是,isColor = False。您告訴我們,您要將幀轉(zhuǎn)換為灰度然后保存。但是您的代碼中沒(méi)有轉(zhuǎn)換。


此外,您還根據(jù)compress參數(shù)調(diào)整代碼中每個(gè)框架的大小。


如果我使用默認(rèn)的壓縮參數(shù):


cap = cv2.VideoCapture(0)


if cap.isOpened():

    ret, frame = cap.read()

    rescaled_frame = rescale_frame(frame)

    (h, w) = rescaled_frame.shape[:2]

    fourcc = cv2.VideoWriter_fourcc(*'mp4v')

    writer = cv2.VideoWriter('Video_output.mp4',

                             fourcc, 15.0,

                             (w, h), True)

else:

    print("Camera is not opened")

現(xiàn)在我們已經(jīng)VideoWriter用所需的尺寸初始化了 。


完整代碼:


import time

import cv2



def rescale_frame(frame_input, percent=75):

    width = int(frame_input.shape[1] * percent / 100)

    height = int(frame_input.shape[0] * percent / 100)

    dim = (width, height)

    return cv2.resize(frame_input, dim, interpolation=cv2.INTER_AREA)



cap = cv2.VideoCapture(0)


if cap.isOpened():

    ret, frame = cap.read()

    rescaled_frame = rescale_frame(frame)

    (h, w) = rescaled_frame.shape[:2]

    fourcc = cv2.VideoWriter_fourcc(*'mp4v')

    writer = cv2.VideoWriter('Video_output.mp4',

                             fourcc, 15.0,

                             (w, h), True)

else:

    print("Camera is not opened")


while cap.isOpened():

    ret, frame = cap.read()


    rescaled_frame = rescale_frame(frame)


    # write the output frame to file

    writer.write(rescaled_frame)


    cv2.imshow("Output", rescaled_frame)

    key = cv2.waitKey(1) & 0xFF

    if key == ord("q"):

        break



cv2.destroyAllWindows()

cap.release()

writer.release()

可能的問(wèn)題:我不想更改VideoWriter參數(shù),該怎么辦?


答案:那么你需要將框架更改為灰色圖像:


while cap.isOpened():

    # grab the frame from the video stream and resize it to have a

    # maximum width of 300 pixels

    ret, frame = cap.read()


    frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)


查看完整回答
反對(duì) 回復(fù) 2023-07-18
  • 1 回答
  • 0 關(guān)注
  • 471 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)