全景AR增强监视系统实现4K、8K超高清大场景视频电子放大、缩放细节显示(二)
全景AR增强监视系统实现4K、8K超高清大场景视频电子放大、缩放细节显示
1、写在前面
上一篇中我们简单讲解了 Qml 中实现电子放大的几种方式以及之间的优劣。
而我们的 SkeyeARS
经过多次测试和基于多种场景考虑,选用的是 直接更改 width 和 height
实现电子放大。
表面上看似乎非常简单,然而我们的目标是实现细节缩放即 鼠标中心放大
。
并且,再插入平滑动画则更加完美,当然,也就相当复杂了。
2、正文开始
首先,思考一下,我们应该如何基于鼠标位置来进行放大。
计算鼠标在
VideoOutput
中的坐标,使用Item.mapToItem()
。计算鼠标坐标相对宽高的比例
xFactor
和yFactor
。计算缩放后的宽高。
移动
VideoOutput
至原位置。使用
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超高清大场景视频电子放大、缩放细节显示(二)相关推荐
- SkeyeARS全景AR增强监视系统助力林业部门打造森林防火视频监控网
森林火灾是一种突发性强.破坏性大.处置救助较为困难的自然灾害,危害极大.杜绝森林防火,提前预警是关键.森林防灭火工作必须时刻紧绷安全弦,严防死守,严格火源管控,加大巡护力度,严格卡口设置和管理,坚决管 ...
- SkeyeARS全景AR增强监视系统智慧城市应用、城市道路监管解决方案
社会经济的快速发展,导致城市交通出行需求持续上升,道路拥堵及治安问题日趋严峻,交通管理难度也随之加大.随着车辆数量的不断增长,道路交通视频监控系统的完善已然成为一种必要趋势.智能监控系统作为维持交通秩 ...
- SkeyeARS全景AR增强监视系统应用智慧城市解决方案
社会经济的快速发展,导致城市交通出行需求持续上升,道路拥堵及治安问题日趋严峻,交通管理难度也随之加大.随着车辆数量的不断增长,道路交通视频监控系统的完善已然成为一种必要趋势.智能监控系统作为维持交通秩 ...
- 全景AR增强监视系统对接SkeyeIVMS视频云管控系统实现软硬件资源的健康状态管理(一)
全景AR增强监视系统对接SkeyeIVMS视频云管控系统实现软硬件资源的健康状态管理(一) 1.写在前面 我们在SkeyeARS 中实现了软硬件资源的健康状态. 所谓的软件资源的健康状态,是指监控的软 ...
- SkeyeARS 全景AR增强监视系统实现高低点摄像机关联显示(一)
SkeyeARS 全景AR增强监视系统实现高低点摄像机关联显示(一) 1.写在前面 在很多全景监控的场景中,很多时候需要将全景与点位关联起来. 并且,对于我们的全景AR增强系统,还要将点位的位置与全景 ...
- 全景AR增强监视系统对接SkeyeIVMS视频云管控系统实现软硬件资源的健康状态管理(二)
全景AR增强监视系统对接SkeyeIVMS视频云管控系统实现软硬件资源的健康状态管理(二) 1.写在前面 上一篇中我们简单讲解了 健康状态 的功能. 实际上,仅仅从效果图上看不足以了解. 所以接下来, ...
- SkeyeARS全景AR增强监视技术机场智慧安防解决方案
机场是重要的交通枢纽之一,日益增长的出行需求.疫情期间防疫要求.多变的国际国内安全趋势等因素都给机场安全防范带来严峻挑战.传统视频监控存在覆盖率不高.清晰度不够.智能化不足等问题,难以满足对机场安防工 ...
- 2021 CPSE安博会8K超高清黑科技
2021 CPSE安博会上,博冠光电展出了拳头产品博冠8K+5G+AI超高清监控摄像机S1及博冠8K超高清摄像机G1,还结合安防监控领域,首次展示"雷视一体"定位识别系统及AI人工 ...
- 金山云VR+8K超高清直播全链路解决方案
未来5G低延迟.高带宽.广连接的网络环境,为音视频内容在各行业的应用带来了新的变革,也为虚拟现实产业发展提供新的契机.金山云在VR领域持续投入资源,实现了VR+8K的直播端到端全链路解决方案. 文 / ...
最新文章
- ndk-build 参数NDK_APPLICATION_MK问题
- 大工18秋计算机应用在线作业,大工18秋《计算机组网技术》在线测试1【标准答案】...
- 将数据流链接到加密转换的流CryptoStream 类
- Java 蓝桥杯 完美的代价
- java quartz Scheduler 操作Trigger
- 6.1Python文件的操作(一)
- 走在梦的路上 绝不回头
- Eclipse下Pydev在线安装失败及解决办法
- IBM X3650 M4 服务器
- mysqld --initialize --console 没有 打印信息_JavaScript学习笔记(三)-- 循环结构
- Sprite Editor 图集切片精灵
- mysql 联合表(federated)及视图
- Android 简单又炫酷的帧动画(加载动画)
- 重启共享文件服务器,windows server 2008 文件服务器不定期出现大量CLOSE_WAIT状态的连接,必须重启服务器,客户端才能访问共享。...
- 上传txt文件乱码问题
- 天融信TopApp-LB 负载均衡系统漏洞总结
- 产品能力|书山有路-趣味算法(第二版)读书笔记part1
- SPADE 阅读笔记
- 九麟SDK 接入文档
- 微信小程序之订阅消息推送
热门文章
- 后台Request获得表单的几种方法
- [转]医院设备维护工程师成长宝典
- 北理工《Java程序设计》课程教学资源索引(2013版)——第21讲及Android第4讲发布
- firebase ios_适用于Android和iOS的Firebase实时数据库登录教程
- 我已经更改了计算机用户名为什么360防蹭网还是显示名字,360防蹭网在哪_怎么用360防蹭网_360安全卫士怎么看别人有没有蹭网...
- 二叉树的三叉链表存储表示 (第六章 P126)
- maya mel uf8_mayamel基础教程(8)_maya教程
- 创业公司打造顶级团队的七个方法
- Hadoop伪分布式搭建
- 利用手机的无线显示功能投影到我的电脑(配合windows10)