OpenCV 2 imshow 不显示使用 python 3.6 的视频

我有估计姿势的代码。我正在尝试实时运行,但 OpenCV 没有显示视频。如何解决这个错误?我找不到任何问题。


当我使用它时cv2.imshow("Video", dst)也不起作用。


我的相机工作正常。我用小的 python 代码试了一下。然后 imshow 也起作用了。当我尝试使用此代码时,它不起作用。我的相机是 USB 类型的,我在 Ubuntu 平台上工作。


此代码运行时没有任何错误,唯一的问题是 imshow 窗口未显示。


代码:


import json

import trt_pose.coco

import trt_pose.models

import torch

import torch2trt

from torch2trt import TRTModule

import time, sys

import cv2

import torchvision.transforms as transforms

import PIL.Image

from trt_pose.draw_objects import DrawObjects

from trt_pose.parse_objects import ParseObjects

import argparse

import os.path



'''

hnum: 0 based human index

kpoint : keypoints (float type range : 0.0 ~ 1.0 ==> later multiply by image width, height

'''

def get_keypoint(humans, hnum, peaks):

    #check invalid human index

    kpoint = []

    human = humans[0][hnum]

    C = human.shape[0]

    for j in range(C):

        k = int(human[j])

        if k >= 0:

            peak = peaks[0][j][k]   # peak[1]:width, peak[0]:height

            peak = (j, float(peak[0]), float(peak[1]))

            kpoint.append(peak)

            #print('index:%d : success [%5.3f, %5.3f]'%(j, peak[1], peak[2]) )

        else:    

            peak = (j, None, None)

            kpoint.append(peak)

            #print('index:%d : None %d'%(j, k) )

    return kpoint



parser = argparse.ArgumentParser(description='TensorRT pose estimation run')

parser.add_argument('--model', type=str, default='resnet', help = 'resnet or densenet' )

args = parser.parse_args()


with open('human_pose.json', 'r') as f:

    human_pose = json.load(f)


topology = trt_pose.coco.coco_category_to_topology(human_pose)


num_parts = len(human_pose['keypoints'])

num_links = len(human_pose['skeleton'])



if 'resnet' in args.model:

    print('------ model = resnet--------')

    MODEL_WEIGHTS = 'resnet18_baseline_att_224x224_A_epoch_249.pth'

    OPTIMIZED_MODEL = 'resnet18_baseline_att_224x224_A_epoch_249_trt.pth'

    model = trt_pose.models.resnet18_baseline_att(num_parts, 2 * num_links).cuda().eval()

    WIDTH = 224

    HEIGHT = 224



忽然笑
浏览 208回答 1
1回答

汪汪一只猫

你需要把cv2.waitKey(1)刚过cv2.imshow("Video", execute(img, dst, t))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python