opencv视频流kcf跟踪算法处理

知途。。。 2019-07-11 06:58:42
请问我用qt处理1920*1080的视频流,进行kcf跟踪算法处理,然后再显示在label上,为什么视频特别卡顿
...全文
78 点赞 收藏 16
写回复
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
知途。。。 2019-07-12
引用 8 楼 weixin_43017863的回复:
一般视频播放都使用PANEL控件
qt有这个控件吗?????
回复
weixin_43017863 2019-07-12
一般视频播放都使用PANEL控件
回复
我的意思是一般的编译器+一般的图形库+一般的电脑(核显)是性能足够的,如果你确定你的绘制代码没有问题的话,可以换用FFMPEG库试试
回复
知途。。。 2019-07-12
引用 13 楼 早打大打打核战争的回复:
我用Delphi写了一个简单的测试(CB如果用VCL库的话性能应该是一样的),从这里下载前10张jpeg图(https://www.pixelstalk.net/summer-desktop-wallpaper-background-hd/),1920x1080,总计4.01MB,平均每张图410.6KB,装入到一个TJPEGImage数组,然后循环绘制到TImage.Picture.Bitmap,这包括解码、拉伸、绘制,性能可以超过90fps,大约相当于播放288Mbps码率的视频。
你的意思我不应该直接QT的控件去显示视频,而是应该用专门显示视频的库吗?
回复
代码:
uses Vcl.Imaging.Jpeg;

const
PicNames: array[0..9] of string = (
'Beautifull-Summer-Desktop-Wallpaper.jpg',
'Cool-Summer-Desktop-Wallpaper-HD.jpg',
'Cool-Summer-Backgrounds.jpg',
'Summer-Background-HD.jpg',
'Cool-Summer-Wallpaper-HD-1.jpg',
'Summer-Beach-Wallpaper-for-desktop.jpg',
'Nice-Summer-Desktop-for-Windows.jpg',
'Summer-Time-Background.jpg',
'Summer-Blue-Sea-Wallpaper-HD.jpg',
'Star-Fish-Summer-Desktop-Wallpaper-HD.jpg');

var
Pics: array[0..9] of TJPEGImage;
Stop: boolean = true;

procedure TForm1.Button1Click(Sender: TObject);
begin
Stop := not Stop;
if not Stop then
Form1.BeginInvoke(
procedure
var
i: integer;
Ticks: uint64;
begin
Image1.Picture.Bitmap.Assign(Pics[0]);
while not stop do
begin
Ticks := GetTickCount64;
for i := 0 to 9 do
begin
Image1.Picture.Bitmap.Assign(Pics[i]);
Application.ProcessMessages;
end;
Ticks := GetTickCount64 - Ticks;
Label1.Caption := Format('%0.3f fps', [10000.0 / Ticks]);
end;
end
);
end;

procedure TForm1.FormCreate(Sender: TObject);
var
i: integer;
begin
for i := 0 to 9 do
begin
Pics[i] := TJPEGImage.Create;
Pics[i].LoadFromFile('d:\temp\wallpaper\' + PicNames[i]);
end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
var
i: integer;
begin
for i := 0 to 9 do
Pics[i].Free;
end;
回复
我用Delphi写了一个简单的测试(CB如果用VCL库的话性能应该是一样的),从这里下载前10张jpeg图(https://www.pixelstalk.net/summer-desktop-wallpaper-background-hd/),1920x1080,总计4.01MB,平均每张图410.6KB,装入到一个TJPEGImage数组,然后循环绘制到TImage.Picture.Bitmap,这包括解码、拉伸、绘制,性能可以超过90fps,大约相当于播放288Mbps码率的视频。

回复
知途。。。 2019-07-12
引用 10 楼 早打大打打核战争的回复:
应该还是Qt绘制性能的问题,Qt在非Linux上性能是堪忧的...
win系统下绘制性能也跟不上吗?????
回复
知途。。。 2019-07-12
win系统下绘制性能也跟不上吗?????
回复
应该还是Qt绘制性能的问题,Qt在非Linux上性能是堪忧的...
回复
ooolinux 2019-07-11
图形用户界面(GUI)编程可以学习C++ Builder,架构先进(和C#一样拖控件),入门比较容易。   C++ Builder是真正的可视化的开发工具。C++ Builder可以用鼠标拖拉控件加上设置属性轻松的“设计”出一个程序的图形用户界面,利用可视的组件/控件像“搭积木”一样,以“所见即所得”的方式搭建应用程序的界面,这也是C++ Builder这个名字中Builder的概念。这样,只需要用C++语言编写业务逻辑代码,类似于DOS下文本界面编程,只要专注于实现业务逻辑功能就可以了,代码非常简洁。数据的输入和表现,都在图形用户界面,非常直观、易用。这就是RAD开发(Rapid Application Development,快速应用程序开发)。 书籍推荐: 《C++Builder 6程序设计教程(第二版)》 (陆卫忠,刘文亮 等编著 /2011-04-01 /科学出版社)(当当网) 《C++Builder 6编程实例精解》(赵明现),PDF,是数字版的,非扫描版的,里面还有一个俄罗斯方块游戏的完整实现。 《精彩C++Builder 6程序设计》(台湾 吴逸贤),里面有10几个简单小游戏的实现,可以自己看懂以后再重写,才是自己掌握的。 《C++ Builder 5高级编程实例精解》(刘滨 编著)都是较大的实用的程序。 C++ Builder书籍下载: https://pan.baidu.com/s/13n9hxwVj9ai1p5L2rQC83Q
回复
知途。。。 2019-07-11
引用 5 楼 ooolinux的回复:
试试c++ builder的Image控件。
好的,谢谢,,,,,,,,
回复
ooolinux 2019-07-11
试试c++ builder的Image控件。
回复
知途。。。 2019-07-11
引用 3 楼 ooolinux的回复:
可能用label绘制有瓶颈。
额,能推荐一个控件吗?????
回复
ooolinux 2019-07-11
可能用label绘制有瓶颈。
回复
知途。。。 2019-07-11
引用 1 楼 ooolinux的回复:
略过跟踪算法处理,视频会卡吗?
如果不用跟踪算法也卡,,,,,
回复
ooolinux 2019-07-11
略过跟踪算法处理,视频会卡吗?
回复
相关推荐
发帖
网络及通讯开发
创建于2007-08-02

1299

社区成员

C++ Builder 网络及通讯开发
申请成为版主
帖子事件
创建了帖子
2019-07-11 06:58
社区公告
暂无公告