opengl

【opencv4.3.0教程】02之图像的读取、显示、修改及保存

*爱你&永不变心* 提交于 2020-08-04 18:05:20
目录 一、前言 二、图像基本操作 0、啥是API 1、加载图像CV :: imread 1.加载图像是什么? 2.API 2、创建窗口cv::namedWindow 1.创建窗口是什么? 2.API 3.它是必要的吗? 3、显示图像CV :: imshow 1.显示图像是什么? 2.API 4、修改图像 (cv::cvtColor) 1.修改图像是什么? 2.API 5、保存图像 (cv::imwrite) 1.保存图像是什么? 2.API 三、全部代码及结果展示 1、代码 2、运行效果图 五、几个图像基本概念 一、前言 上一篇文章我们讲了安装和配置,这节课我们还是了解几个最基本的操作,包括图像的读取、图像的显示、图像的修改、图像的保存。 如果你已经有了解过OpenCV,那对这些概念可能比较清楚,如果你是一个小白,想入门学习OpenCV4.3.0,那先不要想太多,先跟我一起读懂每一个API,跟我一起学着写代码。 我们这一系列文章,会讲解API,API的功能、API调参、API的原理,但是我们不会讲API的实现细节,如果你对具体实现细节有兴趣,你可以查看源码以及数字图像处理原理。 二、图像基本操作 图像基本操作包括加载,修改,显示,保存。 0、啥是API 从今天这篇文章开始往后,我们会经常讲到API,所以我们要介绍一下,什么是API? API的定义如下: API(

OpenGL常用函数(正在更新)

可紊 提交于 2020-08-04 15:45:35
glfwInit(); 初始化glfw glfwCreateWindow 返回根据参数创建的窗口结构体 glfwMakeContextCurrent 将参数的窗口结构体链接到状态机 glfwSetFramebufferSizeCallback 当每次窗口大小发生改变就会调用第二个参数 glewInit 初始化glew glGenVertexArrays 分配VAO对象 glGenBuffers 分配VBO对象 glBindVertexArray 绑定VAO glBindBuffer 绑定VBO glBufferData 配置VBO顶点数据 glCreateShader 创建着色器对象 glShaderSource 着色器的源码 glCompileShader 编译着色器 glGetShaderInfoLog 获取着色器信息 glAttachShader 链接着色器到着色器程序 glDeleteShader 删除着色器 glVertexAttribPointer 配置顶点属性 glEnableVertexAttribArray(0); 启用顶点属性 glfwGetTime 返回从程序运行到当前秒数 glGetUniformLocation 返回uniform变量的位置 glDrawArrays 连接顶点 glfwSwapBuffers 交换缓冲区 glfwPollEvents 事件

2019年春季学期:学习资料汇总

☆樱花仙子☆ 提交于 2020-08-04 10:05:08
算法设计与分析 教材 算法设计与分析 第2版 屈婉玲 清华大学出版社 数字图像处理 教材 冈萨雷斯-数字图像处理(MATLAB版)(第二版) 冈萨雷斯-数字图像处理(第三版) 不太喜欢第三版...数学偏多,基础部分比较啰嗦。 MATLAB 图像处理工具箱 https://ww2.mathworks.cn/products/image.html 程序设计实习 刷题 OpenJudge http://cxsjsxmooc.openjudge.cn/2019t3springall/ POJ http://poj.org/problemlist 游戏AI中的算法 大作业平台/环境 Botzone-国标麻将 https://www.botzone.org.cn/ 星际争霸2-配置教程 https://zhuanlan.zhihu.com/p/28471863 星际争霸2-官方教程 https://github.com/deepmind/pysc2 视觉计算与深度学习 自学入门 官网60分钟入门pytorch教程(需要numpy基础) https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html FINETUNING 图像分类模型样例 https://pytorch.org/tutorials/beginner

OpenCV开发笔记(六十三):红胖子8分钟带你深入了解SIFT特征点(图文并茂+浅显易懂+程序源码)

心不动则不痛 提交于 2020-07-28 19:27:55
若该文为原创文章,未经允许不得转载 原博主博客地址: https://blog.csdn.net/qq21497936 原博主博客导航: https://blog.csdn.net/qq21497936/article/details/102478062 本文章博客地址: https://blog.csdn.net/qq21497936/article/details/106755662 各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门) OpenCV开发专栏(点击传送门) 上一篇:《 OpenCV开发笔记(六十二):红胖子8分钟带你深入了解亚像素角点检测(图文并茂+浅显易懂+程序源码) 》 下一篇:持续补充中… <br> 前言   红胖子,来也!   识别除了传统的模板匹配之外就是体征点了,此篇介绍了SIFT特征点提取使用方法。 <br> Demo             <br> SIFT特征点 概述   SIFT,即尺度不变特征变换(Scale-invariant feature transform,SIFT),是用于图像处理领域的一种描述。这种描述具有尺度不变性

Qt编写安防视频监控系统35-onvif抓拍图片

老子叫甜甜 提交于 2020-07-28 10:48:12
一、前言 以前不知道onvif也可以做抓拍功能,直到近期重新用Onvif Device Test Tool工具测试的时候,发现还有抓图的接口,于是抓跑分析出要收发的数据,然后加入到自己封装的onvif操作类中,这个抓图有个应用场景就是报警以后,直接通过onvif抓图,而不需要打开实时视频流,基本上不占用什么资源。 抓拍图片流程 发送GetSnapshotUri获取到对应token的抓图路径。 通过get方式请求这个路径,注意这里建议带上用户信息。 返回的数据就是图片的数据,接收完成以后用QImage的loadFromData载入即可。 onvif主要的功能 搜索设备,获取设备的信息比如厂家、型号等。 获取设备的多个配置文件信息profile。 获取对应配置文件的视频流地址rtsp,以及分辨率等参数。 云台控制,上下左右移动,焦距放大缩小,相对和绝对移动。 获取预置位信息,触发预置位。 订阅事件,接收设备的各种消息尤其是报警事件比如IO口的报警。 抓图,获取设备当前的图片。 获取、创建、删除用户信息。 获取和设备网络配置信息比如IP地址等。 获取和设置NTP时间同步。 获取和设置设备时间。 重启设备。 onvif的处理流程 绑定组播IP(239.255.255.250)和端口(3702),发送固定的xml格式的数据搜索设备。 接收到的xml格式的数据解析,得到设备的Onvif地址。

AWTK Designer 0.1.6正式发布,持续打造新一代GUI设计平台

断了今生、忘了曾经 提交于 2020-07-28 09:46:39
今天,我们迎来了Designer 0.1.6的发布。在这个版本中,我们完善了许多细节,并增加了部分新功能,如:项目管理器窗口支持简洁模式、窗体预览支持多种渲染模式以及许可管理页面添加续期功能等。 AWTK Designer是专门用来制作AWTK应用程序的UI界面的实用工具,只要通过拖曳和点击就可以完成复杂的界面设计,而且可以随时预览效果图。通过AWTK Designer即可完成UI界面元素的布局、设置控件属性、给控件添加动画效果和设置样式等。 得益于AWTK强大的功能和跨平台特性,AWTK Designer本身也是基于AWTK构建的。 今天,我们迎来了Designer 0.1.6的发布。在这个版本中,我们完善了许多细节,并增加了部分新功能,如:项目管理器窗口支持简洁模式、窗体预览支持多种渲染模式以及许可管理页面添加续期功能等。具体内容如下: 支持简洁模式 项目管理器窗口支持简洁模式与常规模式之间的切换,简洁模式下仅显示UI文件列表,并支持修改启动页面和打开样式文件。 简洁模式(左)与常规模式(右) 支持多种渲染模式 点击“预览”按钮,有多种渲染模式可供选择:AGGE-BGR565、AGGE-BGRA8888、AGGE-MONO以及OpenGL,方便用户观看同一UI界面在不同渲染模式下的效果图。 AGGE-BGR565(左)与AGGE-MONO(右) 注

Qt编写安防视频监控系统34-onvif事件订阅

流过昼夜 提交于 2020-07-28 09:32:43
一、前言 事件订阅是近期增加的功能,主要是因为遇到越来越多的一个应用场景,能够接收摄像机的报警事件,比如几乎所有的摄像机后面会增加报警输入输出接口,如果用户外接了报警输入,则当触发报警以后,对应的事件也会通过onvif传出去,这样就相当于兼容了所有onvif摄像机厂家的报警事件接收,在一些应用系统中,这个功能也是很常见的。 事件订阅流程 发送getEvent(CreatePullPointSubscription)订阅事件服务。 订阅服务成功以后,发送PullMessages订阅事件。 如果有事件,会立即回复数据,在处理完数据以后,要重新发送PullMessages订阅事件。 如此往复,一旦有事件会在请求后回复数据,该请求默认是长连接。 发送PullMessages的时候带有超时时间,一旦到了超时时间,也需要重新发送PullMessages。 onvif主要的功能 搜索设备,获取设备的信息比如厂家、型号等。 获取设备的多个配置文件信息profile。 获取对应配置文件的视频流地址rtsp,以及分辨率等参数。 云台控制,上下左右移动,焦距放大缩小,相对和绝对移动。 获取预置位信息,触发预置位。 订阅事件,接收设备的各种消息尤其是报警事件比如IO口的报警。 抓图,获取设备当前的图片。 获取、创建、删除用户信息。 获取和设备网络配置信息比如IP地址等。 获取和设置NTP时间同步。

模拟阴影的bias动态调整

假如想象 提交于 2020-07-28 01:50:50
出现斑驳或亮处变黑问题,是因为: bais值是在Shader中是固定的 OpenGL的教程中是给一个固定的值. 不适用所有场合 Bias值改成动态的会好些 影响Bias值有以下因素: 采样贴图的尺寸 与bias值成反比 , 越密,Bias也就越细致 摄像机采样范围xy值 与bias值成正比. 范围越大, 单位范围内的像素点就越少,同一个采样像素点所覆盖的区域就越大,就需要更大的bias来调整 Z深度near far值的差(far减near所得到的距离) 与bias值成反比. 因为阴影采样是以透视除法后的值存储, z 值范围是0~1, near far的距离越大, 这0~1的代表的范围就越大. 单位空间里的z值覆盖也就越小, bias越小. 来源: oschina 链接: https://my.oschina.net/u/235558/blog/4328032

GLUT Tutorials 16:游戏模式

大憨熊 提交于 2020-07-27 11:23:01
博客转自: http://www.lighthouse3d.com/tutorials/glut-tutorial/game-mode/ GLUT的游戏模式是使能高性能全屏渲染。然而,总是会有些GLUT函数拖累高性能的需求,例如菜单弹窗,子窗口等。在这个小节,将引入GLUT的游戏模式。我的这个教程的资料。我没有找到官方的文档,或者其他的教程有讲解到这一部分的。所以我也不确定这个教程是100%正确的。我的GLUT游戏模式的经验来自以前自己创建的正常工作的例程,但是由于只在有限的硬件配置测试过,所有可能会有一些部分不精确或不对的陈述。如果你使用教程里的概念设计中遇到了问题,请给我问题的描述,方便我分析调查原因。如果你已经熟悉了GLUT的游戏模式,并再次发现了对游戏模式理解错误的地方,如果将问题反馈给我,我将非常感激,也可以帮助我解决那些问题。 现在我已经完成的我的声明,我们接下来可以开始这部分的教程。首先是声明游戏模式,例如,全屏。这些设置可能包括屏幕分辨率,像素深度和刷新率。总而言之,我们可以设置我们想要的任意的分辨率(硬件允许的范围内)。 These settings for full screen mode are specified on a string. The format is as follows “WxH:Bpp@Rr” Parameters: W – the

Nuget配置VS2017+OpenGL

和自甴很熟 提交于 2020-07-26 10:59:14
1.先在VS2017新建新空项目 2.添加 NuGet 包管理器 3。如果已经有程序包源,可以新建一个包源,没有的话使用Nuget.org,下载速度较慢。 3.添加 nupengl.core 包 里面有自带的GL和GLFW 4.遇到一些在Nuget包管理下载不了的,可以离线下载,比如Glad和STDB_IMAGE,j将下载好的文件存放在nupengl.core.0.1.0.1\build\native\include下即可: 测试结果: 来源: oschina 链接: https://my.oschina.net/1024and1314/blog/4278449