Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用SDL和C++

如何使用SDL和C++
EN

Stack Overflow用户
提问于 2011-05-23 08:13:36
回答 1查看 599关注 0票数 0

我需要编写一个函数,它接受两个帧作为输入,并计算它们之间的差异。输出将是一个帧,其中每个像素的值表示目标帧和参考帧中相应像素之间的绝对差

最后,我需要以灰度显示这个“残差”帧。此处不计算任何运动矢量。

我该如何开始做这件事?

此外,我需要创建一个单一的观察窗口,将显示4个图像。

http://tinypic.com/r/2r46gkm/7

有什么解决方案吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-23 08:45:03

假设您希望使用SDL (您的标记指示)来完成此操作,您将希望访问帧的像素并手动迭代它们。您可以使用类似于此的代码来完成此操作(假设您的图像是32位曲面):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Uint32 *pixelBuffer = (Uint32 *)surface->pixels;
Uint32 pixel pixelBuffer[ ( y * surface->w ) + x ];

其中x和y是您要访问的位置。您可以用类似的方式设置像素:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Uint32 pixel = SDL_MapRGB(surface->format, r, g, b);
Uint32 *pixelBuffer = (Uint32 *)surface->pixels;
pixelBuffer[ ( y * surface->w ) + x ] = pixel;

您必须自己实现每个像素的“差异”,以及归一化。

如果您不需要在SDL中执行此操作,还有其他更适合此功能的图像库,例如OpenCV或OpenIL。

问题的第二部分在SDL中非常简单,只需创建一个窗口(SDL_SetVideoMode),该窗口的宽度和高度是帧的两倍,然后在一定的偏移量上渲染不同的屏幕。如果您是SDL的新手,我建议您使用this tutorial。如果没有其他东西,这是一个很好的参考。

编辑:差异...只是图像之间的区别吗?一些伪代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for each pixel at coordinate (x,y) in surface residual:
  residual(x,y) = abs(target(x,y) - reference(x,y))

对于归一化,只需在残差曲面中找到最暗和最亮的值(例如,通过暴力迭代)。我们将它们称为minValmaxVal,并将整个光线范围称为scale = maxVal - minVal

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
residual(x,y) = (diff(x,y) - minVal) / scale

这会将每个像素归一化到0到1的范围内。你必须将它乘以你想要的最亮的颜色(确保不会因为这里的整数转换而失去精度)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6094518

复制
相关文章
【SDL实践指南】Foritify终端使用
本篇文章介绍了如何通过Foritify终端对工程项目进行扫描以及如何在终端对扫描结果进行导出~
Al1ex
2023/05/12
4220
【SDL实践指南】Foritify终端使用
【SDL实践指南】SDL基本介绍
传统的软件开发生命周期关注核心点在于需求分析、需求设计和需求编码实现,但是事实证明只注重软件业务功能设计实现而缺乏对产品安全考量的产品终将会为此而付出惨痛的代价,例如:因为缺乏对安全相关法律法规的了解,在产品业务功能实现中过度采集用户个人数据信息并将其进行滥用和不安全的存储而带来的法律追责问题和应用产品强制下架整改;因为产品发版后被攻击者恶意攻击造成系统无法正常使用而被迫强制下线进行漏洞修复等,为了规避产品上线后由于潜在的安全问题而带来的经济损失以及时间成本等问题SDL应运而生。
Al1ex
2023/03/07
2.2K0
【SDL实践指南】SDL基本介绍
(译)SDL编程入门(1)Hello SDL
制作基于文本的小程序。为了使用诸如图形、声音、键盘、操纵杆等东西,你需要一个API(应用程序员接口),将所有这些硬件功能转化为C++可以交互的东西。
arcticfox
2020/09/24
3K0
论企业如何快速建立SDL流程
今年很多比较大的互联网公司开始试行SDL落地,但是由于相关资料文档有限,导致落地困难,今天这篇文章就旨在讨论一下企业SDL如何快速落地问题,题主落地SDL时间并不是很长,一两年时间而已,但是一样是从零开始,过程艰难,不论成功与否,一样有所得,写出来大家讨论一下。
FB客服
2019/11/26
1.5K0
安全开发生命周期(2)-如何实施和推行SDL?
在上一篇《安全开发生命周期(1)-从源头解决安全问题的SDL简介》中,简要介绍了实施SDL的意义。
用户U2
2022/06/02
6310
使用SDL2显示一张图片,SDL2上手贴
SDL全名Simple DirectMedia Layer,是一个跨平台的底层音频、视频、键盘、鼠标操作库,操作实际通过更底层的OpenGL/Direct3D完成,在保留跨平台的兼容性之外提供了非常高的效率,所以广泛的应用在多种游戏和对速度敏感的应用中,比如鼎鼎大名的steam平台/ffmpeg/qemu/模拟器等,当前的版本是2.0。更详细的资料可以访问官网:https://www.libsdl.org/。 SDL2的编程理念清晰易用,代码简洁高效,这里用显式一副图片的最简代码来作为入门的示例,正式
俺踏月色而来
2018/06/15
1.7K0
【SDL实践指南】SDL安全设计概述
众多频发的网络安全事件表明当下很多的安全问题都是由于产品自身的代码业务逻辑判断不严谨、输入校验不严格、身份校验缺失、异常处理不合理、访问控制缺失以及不安全的配置等众多的因素引起的,而导致这样的安全问题发生的根本原因是由于在软件开发生命周期中缺乏对业务安全问题的考虑以及缺少对项目流程的安全控制,因此需要一个安全设计的最佳实践来指导软件项目的安全落地,所以SDL安全设计checklist应运而生
Al1ex
2023/03/29
1.7K0
【SDL实践指南】SDL安全设计概述
Windows下使用VS2013编译使用SDL库
Simple DirectMedia Layer是一个跨平台开发库,旨在通过OpenGL和Direct3D提供对音频,键盘,鼠标,操纵杆和图形硬件的低级访问。 视频播放软件,仿真器和流行游戏(包括Valve屡获殊荣的目录和许多Humble Bundle游戏)都使用它。
ccf19881030
2020/07/23
3.6K0
Windows下使用VS2013编译使用SDL库
SDL简介
SDL在结构上是将不同操作系统的库再封装成相同的函数,例如SDL在Windows平台上是DirectX的封装,而在使用X11的平台上(包括Linux),SDL则是与Xlib库沟通来输出图像。虽然SDL本身是使用C语言写成,但是它几乎可以被所有的编程语言所使用,例如:C++、Perl、Python(借由pygame库)、Pascal、Java等等。
arcticfox
2020/09/24
2.4K0
互联网企业如何有效落地SDL
笔者在实施SDL方面有多年的经验,实施过微软厚重的SDL,实施过互联网企业粗糙的SDL,目前在落地标准化自动化的SDL,在此将我的经验分享出来。为了让大家更好的理解SDL实施的过程,本文尽量以口语化叙事的方式描述SDL实施的过程。当然每家公司的devops和实际的开发流程不一样,所以实施SDL不能照搬照套,还是得结合自己公司的实际情况。
FB客服
2019/12/09
1.2K0
互联网企业如何有效落地SDL
(译)SDL编程入门(21)音效和音乐
到目前为止,我们只是在处理视频和输入。大多数游戏制作都需要某种声音,这里我们将使用SDL_mixer为我们播放音频。
arcticfox
2021/01/06
1.2K0
(译)SDL编程入门(21)音效和音乐
(译)SDL编程入门(15)旋转和翻转
SDL2的硬件加速纹理渲染还能给我们提供图像快速翻转和旋转的能力。在本教程中,我们将利用这一点使一个箭头纹理旋转和翻转。
arcticfox
2020/10/19
1.3K0
(译)SDL编程入门(15)旋转和翻转
SDL系列讲解(七) SDL_image教程
SDL系列讲解(一) 简介 SDL系列讲解(二) 环境搭建 SDL系列讲解(三) 工具安装 SDL是什么,能干什么,为什么我们要学习它? SDL系列讲解(四) demo讲解 SDL系列讲解(五) 调试c代码 SDL系列讲解(六) SDL_Activity流程 前言 我们SDL默认支持的,只能打开BMP格式的图片。然而我们常见的是Png jpg格式的图片,于是我们这节完成SDL借用自带的三方库,来完成加载渲染png等其他图片格式。 SDL_image简介 使用SDL_image,您可以加载
用户1263308
2018/02/02
2.3K0
SDL系列讲解(七) SDL_image教程
SDL系列讲解(十一) SDL_QUIT流程
明天会将自己的很早的一部小说发出,一次发出写的所有的六章,如果时间,或者某天突然觉得可以续写了,那么就是它又一次起航了。 工作期间,码了一个记录工作的小说,有兴趣的可以阅读。当然,文采上面,确实逊色了许多,不过能看完,你能发现一些惊喜,因为很多人物是真实存在的。 移步: http://blog.csdn.net/a332324956/article/category/1886055 下来,继续我们 的SDL系列讲解 SDL系列讲解(一) 简介 SDL系列讲解(二) 环境搭建 SDL系列讲解(三) 工具
用户1263308
2018/02/02
1.3K0
SDL系列讲解(十一) SDL_QUIT流程
SDL系列讲解(八) SDL_ttf教程
关于游戏开发,当前还在调试,一款移植的随后先推出,自己开发的需要稍等几周,近期比较忙,时间不充裕,大家谅解。同时,对于android开发中的任意问题,可以留言,想了解哪方向的知识,可以回复,如果有能力,可以进行讲解的,后续我便会进行展开,以便更准确的帮助到大家。 感谢一路大家的支持与厚爱。 SDL系列讲解(一) 简介 SDL系列讲解(二) 环境搭建 SDL系列讲解(三) 工具安装 SDL是什么,能干什么,为什么我们要学习它? SDL系列讲解(四) demo讲解 SDL系列讲解(五) 调试c代码 SDL
用户1263308
2018/02/02
3.2K0
SDL系列讲解(八) SDL_ttf教程
SDL系列讲解(六) SDL_Activity流程
SDL系列讲解(一) 简介 SDL系列讲解(二) 环境搭建 SDL系列讲解(三) 工具安装 SDL是什么,能干什么,为什么我们要学习它? SDL系列讲解(四) demo讲解 SDL系列讲解(五) 调试c代码 前言 总是会出其不意,讲解随性一些不好吗? 只讲如何使用,明显不是我的风格,于是乎,近期会开展SDL的框架原理的系列分析。当分析做完,给了整体的概念掌握,那么细节就只是时间问题了。 于是,这节开始展开,SDL的java端的代码剖析。 SDLActivity时序图 一张时序图,展开此系列。 首
用户1263308
2018/02/02
1.7K0
SDL系列讲解(六) SDL_Activity流程
【SDL实践指南】Foritify使用介绍速览
Fottify全名叫Fortify Source Code Analysis Suite,它是目前在全球使用最为广泛的软件源代码安全扫描,分析和软件安全风险管理软件,该软件多次荣获全球著名的软件安全大奖,包括InforWord, Jolt,SC Magazine,目前众多世界级的软件开发企业都在使用该软件方案在他们的开发团队中加速查找软件安全漏洞的效率,监视和
Al1ex
2023/03/29
2.1K0
【SDL实践指南】Foritify使用介绍速览
sdl操作基础
https://blog.csdn.net/cyf15238622067/article/details/82907362
sofu456
2022/05/06
4630
如何基于SDL+TensorFlow/SK-Learn开发NLP程序
确保安装了python 2.7 ,强烈建议你使用Virtualenv方便python环境的管理。之后通过pip 安装pyspark
用户2936994
2018/08/27
4340
点击加载更多

相似问题

如何使用OpenGL、SDL和C++绘制文本?

12

C++和SDL问题

34

C++:FFMPEG和SDL资源

24

使用C++和SDL更改SDL_Rect裁剪的图像的alpha

10

C++和SDL: SDL_Rect到底是如何工作的?

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文