全景AR增强监视系统实现4K、8K超高清大场景视频电子放大、缩放细节显示

1、写在前面

上一篇中我们简单讲解了 Qml 中实现电子放大的几种方式以及之间的优劣。

而我们的 SkeyeARS 经过多次测试和基于多种场景考虑,选用的是 直接更改 width 和 height 实现电子放大。

表面上看似乎非常简单,然而我们的目标是实现细节缩放即 鼠标中心放大

并且,再插入平滑动画则更加完美,当然,也就相当复杂了。

2、正文开始

首先,思考一下,我们应该如何基于鼠标位置来进行放大。

  1. 计算鼠标在 VideoOutput 中的坐标,使用 Item.mapToItem()

  2. 计算鼠标坐标相对宽高的比例 xFactoryFactor

  3. 计算缩放后的宽高。

  4. 移动 VideoOutput 至原位置。

  5. 使用 Animation 控制宽高和 坐标的变化。

现在来看看正确实现的关键代码:

MouseArea {id: mouseAreaanchors.fill: parenthoverEnabled: trueonWheel: {let step = wheel.angleDelta.y / 15;videoOutput.addScaleFactor(step * 0.004);}VideoOutput {id: videoOutputwidth: parent.widthheight: parent.heightsource: panoramicProvider//缩放因子,原始源大小时为1.0property real scaleFactor: containerSize.width / sourceRect.widthproperty real minScale: 0.05property real maxScale: sourceRect.width / parent.width + 10000.0//容器大小(即parent.size)property size containerSize: Qt.size(parent.width, parent.height)property real ratio: sourceRect.height / sourceRect.width/*** @brief 增加缩放因子,用此函数调整缩放* @param factor默认0.08* @param isCenter是否中心缩放*/function addScaleFactor(factor = 0.08, isCenter = false) {if (painterButtons.fixedFillButton.checked) return;scaleFactor += factor;if (scaleFactor < minScale) {scaleFactor = minScale;} else if (scaleFactor > maxScale) {scaleFactor = maxScale;}if (scaleAnimation.running) scaleAnimation.stop();scaleWidthAnimation.to = sourceRect.width * scaleFactor;scaleHeightAnimation.to = sourceRect.height * scaleFactor;if (isCenter) {scaleXAnimation.to = (rect.width - scaleWidthAnimation.to) / 2;scaleYAnimation.to = (rect.height - scaleHeightAnimation.to) / 2;} else {let mapPos = mouseArea.mapToItem(videoOutput, mouseArea.mouseX, mouseArea.mouseY);let xFactor = mapPos.x / width;let yFactor = mapPos.y / height;let diffX = scaleWidthAnimation.to - width;let diffY = scaleHeightAnimation.to - height;scaleXAnimation.to = x - xFactor * diffX;scaleYAnimation.to = y - yFactor * diffY;}scaleAnimation.restart();}ParallelAnimation {id: scaleAnimationNumberAnimation {id: scaleWidthAnimationproperty: "width"target: videoOutputduration: 220}NumberAnimation {id: scaleHeightAnimationproperty: "height"target: videoOutputduration: 220}NumberAnimation {id: scaleXAnimationproperty: "x"target: videoOutputduration: 220}NumberAnimation {id: scaleYAnimationproperty: "y"target: videoOutputduration: 220}}}
}

至于如何使用?实际上在 onWheel 中已经给出了方式。

例如,我们想要放大到 2.0x,只需要这样:

 videoOutput.addScaleFactor(2.0 - videoOutput.scaleFactor);

而缩小同理,并且,addScaleFactor 第二参数支持 中心放大模式,可以在需要时传入即可。

最后我们通过使用 ParallelAnimation 并行动画,就可以实现平滑流畅的 4K、8K超高清视频电子放大 效果。

免费下载体验:SkeyeARS 全景 AR 增强监视系统

关于SkeyeARS

SkeyeARS全景AR增强监视系统, 是视开科技开发的一款基于宽场景多路视频无缝拼接、视频实时增强、监视目标增强显示、目标自动跟踪、视频存储回放、远程数据传输和多通道全景视频同步显示等功能的综合视频AR增强监视系统,广泛应用于智慧交通、智慧城市、智慧机场等大场景智能监控领域。

详细说明:http://www.openskeye.cn/web/product/ars

获取更多信息

邮件:support@openskeye.cn

QQ交流群:102644504

SkeyeVSS综合安防互联网无插件播放解决方案

SkeyeARS全景AR增强监视系统解决方案

SkeyeIVMS集群式视频云管控平台解决方案

Copyright © OpenSKEYE Team 2018-2022

全景AR增强监视系统实现4K、8K超高清大场景视频电子放大、缩放细节显示(二)相关推荐

  1. SkeyeARS全景AR增强监视系统助力林业部门打造森林防火视频监控网

    森林火灾是一种突发性强.破坏性大.处置救助较为困难的自然灾害,危害极大.杜绝森林防火,提前预警是关键.森林防灭火工作必须时刻紧绷安全弦,严防死守,严格火源管控,加大巡护力度,严格卡口设置和管理,坚决管 ...

  2. SkeyeARS全景AR增强监视系统智慧城市应用、城市道路监管解决方案

    社会经济的快速发展,导致城市交通出行需求持续上升,道路拥堵及治安问题日趋严峻,交通管理难度也随之加大.随着车辆数量的不断增长,道路交通视频监控系统的完善已然成为一种必要趋势.智能监控系统作为维持交通秩 ...

  3. SkeyeARS全景AR增强监视系统应用智慧城市解决方案

    社会经济的快速发展,导致城市交通出行需求持续上升,道路拥堵及治安问题日趋严峻,交通管理难度也随之加大.随着车辆数量的不断增长,道路交通视频监控系统的完善已然成为一种必要趋势.智能监控系统作为维持交通秩 ...

  4. 全景AR增强监视系统对接SkeyeIVMS视频云管控系统实现软硬件资源的健康状态管理(一)

    全景AR增强监视系统对接SkeyeIVMS视频云管控系统实现软硬件资源的健康状态管理(一) 1.写在前面 我们在SkeyeARS 中实现了软硬件资源的健康状态. 所谓的软件资源的健康状态,是指监控的软 ...

  5. SkeyeARS 全景AR增强监视系统实现高低点摄像机关联显示(一)

    SkeyeARS 全景AR增强监视系统实现高低点摄像机关联显示(一) 1.写在前面 在很多全景监控的场景中,很多时候需要将全景与点位关联起来. 并且,对于我们的全景AR增强系统,还要将点位的位置与全景 ...

  6. 全景AR增强监视系统对接SkeyeIVMS视频云管控系统实现软硬件资源的健康状态管理(二)

    全景AR增强监视系统对接SkeyeIVMS视频云管控系统实现软硬件资源的健康状态管理(二) 1.写在前面 上一篇中我们简单讲解了 健康状态 的功能. 实际上,仅仅从效果图上看不足以了解. 所以接下来, ...

  7. SkeyeARS全景AR增强监视技术机场智慧安防解决方案

    机场是重要的交通枢纽之一,日益增长的出行需求.疫情期间防疫要求.多变的国际国内安全趋势等因素都给机场安全防范带来严峻挑战.传统视频监控存在覆盖率不高.清晰度不够.智能化不足等问题,难以满足对机场安防工 ...

  8. 2021 CPSE安博会8K超高清黑科技

    2021 CPSE安博会上,博冠光电展出了拳头产品博冠8K+5G+AI超高清监控摄像机S1及博冠8K超高清摄像机G1,还结合安防监控领域,首次展示"雷视一体"定位识别系统及AI人工 ...

  9. 金山云VR+8K超高清直播全链路解决方案

    未来5G低延迟.高带宽.广连接的网络环境,为音视频内容在各行业的应用带来了新的变革,也为虚拟现实产业发展提供新的契机.金山云在VR领域持续投入资源,实现了VR+8K的直播端到端全链路解决方案. 文 / ...

最新文章

  1. ndk-build 参数NDK_APPLICATION_MK问题
  2. 大工18秋计算机应用在线作业,大工18秋《计算机组网技术》在线测试1【标准答案】...
  3. 将数据流链接到加密转换的流CryptoStream 类
  4. Java 蓝桥杯 完美的代价
  5. java quartz Scheduler 操作Trigger
  6. 6.1Python文件的操作(一)
  7. 走在梦的路上 绝不回头
  8. Eclipse下Pydev在线安装失败及解决办法
  9. IBM X3650 M4 服务器
  10. mysqld --initialize --console 没有 打印信息_JavaScript学习笔记(三)-- 循环结构
  11. Sprite Editor 图集切片精灵
  12. mysql 联合表(federated)及视图
  13. Android 简单又炫酷的帧动画(加载动画)
  14. 重启共享文件服务器,windows server 2008 文件服务器不定期出现大量CLOSE_WAIT状态的连接,必须重启服务器,客户端才能访问共享。...
  15. 上传txt文件乱码问题
  16. 天融信TopApp-LB 负载均衡系统漏洞总结
  17. 产品能力|书山有路-趣味算法(第二版)读书笔记part1
  18. SPADE 阅读笔记
  19. 九麟SDK 接入文档
  20. 微信小程序之订阅消息推送

热门文章

  1. 后台Request获得表单的几种方法
  2. [转]医院设备维护工程师成长宝典
  3. 北理工《Java程序设计》课程教学资源索引(2013版)——第21讲及Android第4讲发布
  4. firebase ios_适用于Android和iOS的Firebase实时数据库登录教程
  5. 我已经更改了计算机用户名为什么360防蹭网还是显示名字,360防蹭网在哪_怎么用360防蹭网_360安全卫士怎么看别人有没有蹭网...
  6. 二叉树的三叉链表存储表示 (第六章 P126)
  7. maya mel uf8_mayamel基础教程(8)_maya教程
  8. 创业公司打造顶级团队的七个方法
  9. Hadoop伪分布式搭建
  10. 利用手机的无线显示功能投影到我的电脑(配合windows10)