小编Meh*_*ran的帖子

如何使用Opencv python在视频流中逐帧处理视频图像

我是OpenCV的初学者.我想对正在上传到我的服务器的视频帧进行一些图像处理.我只是想读取可用的帧并将它们写在目录中.等待视频的其他部分上传并将帧写入目录.我应该等待每个帧完全上传然后将其写入文件.

你能告诉我怎样才能用OpenCV(Python)做到这一点?

编辑1: 我编写了此代码用于从文件中捕获视频,而新数据则附加在文件末尾.换句话说,该out.mp4文件不是完整的视频,而另一个程序正在其上写入新的帧.我要做的是,等待其他程序写入新帧然后读取它们并显示它们.

这是我的代码:

import cv2
cap = cv2.VideoCapture("./out.mp4")

while True:
    if cap.grab():
        flag, frame = cap.retrieve()
        if not flag:
            continue
        else:
            cv2.imshow('video', frame)
    if cv2.waitKey(10) == 27:
        break
Run Code Online (Sandbox Code Playgroud)

所以问题就是cap.grab()电话!当没有框架时它会返回False!即使我等了很长时间,它也不再捕捉帧了.

python video opencv video-streaming

41
推荐指数
4
解决办法
14万
查看次数

如何在jquery中同时为两件事制作动画

当鼠标悬停某些东西时,我想同时动画两件事.

例如,当鼠标悬停id ="trigger"的div时,我想更改box1的背景颜色id ="box1"和box2的位置id ="box2".

但我不希望他们在队列中动画,即一个接一个.我希望他们同时开始制作动画并同时完成!

jquery jquery-ui jquery-animate

9
推荐指数
1
解决办法
2万
查看次数

如何用动画更改NumberPicker的值?

我已经为Android创建了一个应用程序,其中有一个NumberPicker.我需要更改此NumberPicker的值,但需要使用平滑动画,就像触摸它并更改其值一样.

例如,假设当前值为1并且它将为5,我希望NumberPicker从1旋转到2然后旋转到3,依此类推.但我希望它不仅可以瞬间改变价值!

如果我使用以下代码:

numberPicker.setValue(5);
Run Code Online (Sandbox Code Playgroud)

它的值会立即变为5,但我希望它从1到5卷起,就像你手动触摸并旋转它一样.

animation android android-animation numberpicker

9
推荐指数
1
解决办法
7206
查看次数

如何使用python从视频文件中提取音频?

我想编写一个可以从视频文件中提取音频的python程序(例如video.avi).它有什么好的图书馆吗?我应该从哪里开始?我试图使用PyMedia,但我无法在我的MacOSX(Mountain Lion)上安装它.

编辑: 问题video.avi是不完全可用.有人在写它并每秒添加一些帧.所以我想在Python编写代码来获取视频,因为它来得快,从中提取音频,并将其写入到一个文件(例如audio.mp3,audio.wav).我不知道是否ffmpeg可以等待视频被复制到video.avi.

我不能等待视频完全复制,然后进行音频提取.我必须这样做.

python audio video extract

6
推荐指数
1
解决办法
6575
查看次数

编写一个django查询并在一个数据库中获取反向相关对象!

我在models.py中写了这些模型:

class User(models.Model):
    first_name = models.CharField(max_length=80)

class Skill(models.Model):
    user = models.ForeignKey(User)
    title = models.CharField(max_length=80)
    level = models.IntegerField(default=3)

class Work(models.Model):
    user = models.Foriegnkey(User)
    work_name = models.CharField(max_length=80)
    salary = models.IntegerField()

现在我想从他们的用户具有某种技能的数据库中获取这些作品,并使用它们呈现html.我在views.py中编写此代码:

def show_works(request, skill):
    works = Work.objects.select_related().filter(user__skill__title=skill)
    return render_to_response("works.html", {'works':works})

但是我还想在html中展示另一件事:我想展示该作品的用户的first_name和他的技能.我使用select_related(),但我只能显示first_name但我无法达到用户的技能.

我想写一个最佳的查询来获取作品和其他额外的信息,如用户和用户的技能!像代码打击:(我不想为每项工作命中数据库以获得其用户的技能)

模板works.html:

{% for work in works %}
    
        {{work.work_name}}
        user is : {{work.user.first_name}}
        which has these skills:
        {% for skill in work.user.skill %}
             {{skill.title}} 
        {% endfor %}
    
{% endfor %}

django-queryset

5
推荐指数
1
解决办法
1150
查看次数

使用OpenCV(python)时如何隐藏/禁用ffmpeg错误?

我正在使用OpenCV python捕获视频。这是我的代码

import cv2

cap = cv2.VideoCapture("vid.mp4")
while True:
    flag, frame =  cap.read()

    if not flag:
        cv2.imshow('video', frame)

    if cv2.waitKey(10) == 27:
        break
Run Code Online (Sandbox Code Playgroud)

当框架未准备好时,会产生这样的错误

在此处输入图片说明

要么

Truncating packet of size 2916 to 1536
[h264 @ 0x7ffa4180be00] AVC: nal size 2912
[h264 @ 0x7ffa4180be00] AVC: nal size 2912
[h264 @ 0x7ffa4180be00] no frame!

[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7ffa41803000] stream 0, offset 0x14565: partial file
Run Code Online (Sandbox Code Playgroud)

我想找到一种隐藏此错误的方法!我猜这个错误是由产生的ffmpeg。有什么办法可以隐藏或禁用它?

我致电时会产生此错误cap.read()。而且我还尝试将其包装起来,try ... except ...但是它不起作用,因为它不会引发任何异常。

python error-handling opencv ffmpeg

5
推荐指数
1
解决办法
802
查看次数

如何将矩阵的大小加倍并在Matlab中传播其元素?

假设我有一个这样的矩阵:

a = 
    1    2
    3    4
Run Code Online (Sandbox Code Playgroud)

我想将矩阵的大小加倍并创建如下内容:

aa = 
     1    1    2    2
     1    1    2    2
     3    3    4    4
     3    3    4    4
Run Code Online (Sandbox Code Playgroud)

以这种方式,第一矩阵中的每个元素传播到较大矩阵中的四个元素.

a(i,j) == aa(2*i-1, 2*j-1)
       == aa(2*i  , 2*j-1)
       == aa(2*i-1, 2*j)
       == aa(2*i  , 2*j)
Run Code Online (Sandbox Code Playgroud)

是否有任何预定义的功能来做到这一点?

我绝对可以通过两个循环来做到这一点,但我想要最简单,最干净的方式!

size matlab matrix vectorization

2
推荐指数
1
解决办法
1494
查看次数