自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

100days

calm

  • 博客(146)
  • 收藏
  • 关注

原创 多米诺骨牌问题 概率DP

题目描述准备一个m行n列的二维多米诺骨牌进行游戏。游戏的目标是让二维的多米诺骨牌全部倒下。一个多米诺骨牌倒下的时候,有P的概率往下一列倒,有Q的概率往下一行倒,并触碰该方向上与其相邻的骨牌。当一个倒下完成的时候,需要从第1行的第1列开始检查,然后检查第1行的第2列,… ,第m行的第1列,第m行的第2列…当检查到有一块骨牌没有倒下,就需要触碰当前骨牌。问总共触碰骨牌的期望值。...

2018-09-08 15:38:06 873

原创 法线贴图的一点理解

切线空间假设三角形的三点为P1 P2 P3,设该三角形所对应的一个空间为(T,B,N),其中T和B构成的平面为三角形所在的平面,而T和B分别对应U和V方向。 切线空间的作用是让任何向量从Tangent Space变换到World Space。法线贴图有时候需要模拟一些场景,比如带有浮雕的墙面、带有花纹的茶壶等,如果使用多个三角形模拟平面的凹凸感,则计算量较大并且影响性能。研究...

2018-06-08 14:07:51 1496

原创 PBR 与 OpenGL ES 2.0 中的LOD纹理:Mipmap (关于Lod和Bias)

在PBR渲染中,在算物体表面反射的时候,可以使用Texture自带的LOD(即MIPMAP)或者是Bias来模拟粗糙的效果。 这里记录一下。LOD是Level Of Detail的全称,在游戏中是一种简化的思想,MIPMAP是LOD在图像贴图中的一种具体的实现,在绘制的过程中会根据纹理所在的位置选择层级不同的纹理,提高绘制效率,也可以手动选择要采样的纹理。只有在顶点着色器中才允许带有...

2018-06-04 20:33:33 7037

转载 OpenGL之基本图元

本文转载自文章:http://www.cnblogs.com/gl5773477/p/4007350.html在了解了一些基本图元之后,要知道如何利用基本图元来提高效率。比如当我画一个扇形的时候,最好使用  GL_TRIANGLE_FAN 而不是GL_TRIANGLE ,因为这样可以提高效率。OpenGL的基本图元有点(Point)、线段(Line)、多边形(Ploygon)、三角形(Triang...

2018-05-02 18:48:41 2025

原创 特效:脸部变形分析

脸部变型特效主要包括了: - 瘦脸 - 削脸 - 小脸 - 下巴 - 额头 - 大眼 - 眼距 - 眼角 - 瘦鼻 - 长鼻 - 嘴型 以上的变形算法可以分为两类 1. 局部调整算法(比如:大眼)类似于ps中的液化 2. 全局点位变形(比如:瘦脸)局部调整算法:基于1993年Andreas Gus...

2018-04-27 18:34:20 5621

原创 写Shader部署到手机的过程中遇到的问题

const今天遇到了一个说不上奇怪的问题,这里记录一下: 在电脑端的shader是这样写的:uniform sampler2D texture;uniform vec2 sizeInfo;varying mediump vec2 texcoord;const vec2 src_size = vec2 (1.0 / sizeInfo.x, 1.0 / sizeInfo.y);...

2018-04-11 18:16:43 1119

转载 图像:透视与畸变的区别

转载自 https://blog.csdn.net/JNingWei/article/details/78491252概念 对比角度 透视 畸变 概念本质 规律 像差 根本原因 单镜头在平面上描绘物体空间远近关系的必然缺陷 能让画面有更强的纵深感 能否补救 由机位和拍摄距离等因素决定的,对于单镜头而言无法补救 可通过技术改善...

2018-04-04 18:19:30 5977

原创 OpenGL--纹理问题记录

纹理的基础知识请参阅LearnOpenGL的文章: https://learnopengl-cn.github.io/01%20Getting%20started/06%20Textures/这里记录一下自己在使用纹理时候遇到的一些问题。纹理图像大小,2的n次方?自己在查阅有些资料的时候,有些人在博客上写了这样的话: OpenGL要求纹理的高度和宽度都必须是2的n次方大...

2018-04-04 11:07:29 1378

原创 PS中的羽化操作

最近在自己使用ps做口红滤镜的时候,对于PS不太熟练,这里记录一下制作素材的过程。 羽化操作的原理: 羽化是ps及其其它版本中的重要处理图片的工具。羽化原理是令选区内外衔接的部分虚化。起到渐变的作用从而达到自然衔接的效果。在羽化操作之前,需要先选中图像中的某一个部分,若选中就呈现为虚线。如下图中,虚线包围的部分为选中的部分。 点击PS菜单栏中:选择->修改->...

2018-04-02 18:48:59 4497

原创 OpenGL中的Blend(混色)

混色的概念所谓的混色,就是将当前要绘制的物体的颜色和颜色缓冲区中已经绘制的颜色进行混合,最终决定了当前物体的颜色。 如下图中,我们透过不透明的窗户来看窗外的景色,这就是一种混色。透明的物体可以是完全透明的(让所有的颜色都穿过),或者是半透明的(让颜色穿过,同时也显示自身的颜色)。 一个物体的透明度是通过它颜色的Alpha值来决定的。Alpha颜色值是颜色分量的第四个分量。 如果是...

2018-04-02 11:13:05 5570

原创 QT入门 调试技巧 ShowInfo VS qDebug(九)

在调试的时候经常会用到调试信息,这个时候可以使用qDebug()<<"this is debug"<<endl;那么在程序运行的debug模式下,就会在调试框中输出你的debug信息。如果是在release模式下运行,则不会输出debug信息。但是为了更加清晰的来可视化想要debug的信息,可以使用一个label添加到widget中。然后在label中实时的...

2018-03-29 13:11:35 998

原创 QT入门 QImage和cv::Mat的相互转换(八)

QImage转换为cv::Mat的方法cv::Mat QImage2cvMat(QImage image){ cv::Mat mat; qDebug() << image.format(); switch(image.format()) { case QImage::Format_ARGB32: case QImage::Forma...

2018-03-27 19:11:09 3175

原创 Shader效果-Kuwahara Filter 水彩画

参考网址参考网址参考网址GPUImage::GPUImageKuwaharaFilter效果图:

2018-03-26 18:09:22 2495

原创 QT入门 使用QCamera来显示捕获的视频(七)

使用准备在使用QCamera之前需要在pro文件中添加媒体库。 QT += mutimedia mutimediawidgets 类别介绍QCamera m_pCamera; 摄像头 QCameraViewFinder m_pViewfinder; 取景器,用于显示摄像头的数据QCameraImageCapture m_pImageCapture; 获取摄像头当前帧...

2018-03-26 16:21:29 21435 5

原创 Qt入门 工具栏QToolBar和菜单栏QMenuBar(六)

只有在继承了QMainWindow的窗体,才会有this->menuBar()->addMenu();以及this->addToolBar()函数。QmuneQMune与QMenuBar之间的关系见下面的代码。//方法1:QMenu *menu= menuBar()->addMenu(tr("&file"));//QMainWindow中的me...

2018-03-23 10:31:58 14279

原创 Qt入门 Qt中时间设置(五)

QtimerQTimer类提供了重复和单次触发信号的定时器。重复触发 - 时钟QTimer类为定时器提供了一个高级别的编程接口。很容易使用:首先,创建一个QTimer,连接timeout()信号到适当的槽函数,并调用start(),然后在恒定的时间间隔会发射timeout()信号。利用Qtimer,可以很轻松的模拟出一个时钟:QTimer* timer = new QT...

2018-03-22 11:29:51 3481

原创 Qt入门 Qt中Android环境的设置(四)

前言Qt的优越性在于其是一个跨平台的C++图形用户界面应用程序开发框架。 当你在电脑上写了一个小demo,然后想在你的Android手机上发布,这个时候,你需要使用Qt编译出安卓应用程序。 关于过程,你可以看本篇文章。安装JDK:编译Android程序必需的Java开发环境参考链接: http://www.cnblogs.com/smyhvae/p/3788534.html下...

2018-03-22 10:35:51 914

原创 图像处理-双边滤波 Bilateral Filtering

在Shader中实现双边滤波的时候,总感觉理解的不太透彻,这里写博客记录一下。参考资料: 算法原理 GPUImage中Bilateral Filtering的实现高斯滤波 空间域在理解双边滤波之前,先来理解上面是高斯滤波。 高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。 为了实现线性的平滑,高斯滤波器和高斯分布(正态分布)是有关系的。 一个...

2018-03-21 11:57:25 5084

原创 Qt入门 布局管理器layout(三)

布局layout在Qt中,为了实现特定的功能,一般情况下我们会使用的是自己定义的窗口类。 官方提供了Qt Create来编辑的ui文件,但是我不会使用操作编辑之后的ui,所以这里介绍如何定义自己的布局。在QWidget中设置布局Qxxlayout类若要布局的窗口继承自QWidget,那么可以将布局集成到一个Qxxlayout指针中,之后将这个layout绑定到当前的窗口即可。...

2018-03-21 11:30:26 468

原创 色彩空间基础

本次的文章参考知乎章佳杰的文章: 色彩空间基础 色彩空间表示与转换基础大部分人类的视网膜上有三种感知颜色的感光细胞,叫做锥细胞,分别对不同波长的光线敏感,称为L/M/S型细胞。 三种视锥细胞最敏感的波长分别是橙红色(长波,Long),绿色(中波,Medium),蓝色(短波,Short)。这三种视锥细胞的归一化感光曲线如下图: 大自然的这千千万万种颜色,在人类的眼里看到,最后传送...

2018-03-19 17:03:05 1228

原创 白平衡原理以及实现

色温与白平衡从字面上理解,白平衡的意思是白色的平衡。白平衡是描述显示器中红、绿、蓝三基色混合生成后白色精确度的一项指标,可以解决色彩还原和色调处理的一系列问题。色温,就是定量的以开尔文温度(K)来表示色彩。它是开尔文通过黑体这一理想光源,在不同温度下,所发出光线的颜色特性来定义的。 开尔文温度和摄氏度之间的关系: 零下273.15摄氏度被称为绝对零度,就是0K。然后温度每上...

2018-03-16 18:40:54 14639 5

原创 Qt入门 OpenGL应用(二)

应用来源打开Qt Creater在欢迎界面寻找示例,搜索OpenGL,可以看见很多示例程序,打开慢慢看! QGLxx VS QOpenGLxx或许你在看见本篇博客之前,在网上搜索过类似的文章,有些里面使用的是QGLWidget作为自己写的子类的基类,有些里面使用的是QOpenGLWidget作为自己写的子类的基类。参考链接一句话来说,在Qt4中,Qt将OpenGL的各个接口进...

2018-03-14 14:55:23 335

原创 Qt入门 基本概念(一)

Qt安装参考链接Qt基础部件参考学习链接.ui文件在配置好Qt+VS的环境之后,双击.ui文件即可以看到ui的编辑页面。 拖几个部件进主窗体之后: 运行VS程序就可以看到运行结果出现了编辑之后的效果。打开你的ui类,我这里的名字叫做ui_VSHelloWorld.h,这个类是你编辑.ui文件并且编译程序之后生成的ui程序。class Ui_VsHel...

2018-03-09 17:23:00 2463

原创 Visual Studio中Debug和Release

概念Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。 Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。Debug模式下的命令行其各个命令的含义在VS中C++设置中可以看到。/GS /W3 /Zc:wchar_t /I"F:\MusicProjAddLutSingleI...

2018-03-08 14:28:23 923

原创 简单说一下Lut

Lut的概念Lut的全称是显示查找表(Look-Up-Table),对应着一种映射关系。在图像调色中用到很多。使用Lut可以轻松得到变换之后的颜色:Trans_color = LutTrans(color);Lut在工程中的使用但是一个完整的色域信息是 256*256*256 就算是一个信息只有1字节,这个信息也有16MB的大小,对于工程来讲实在是太大了。所以在实...

2018-03-06 12:13:44 7415

转载 曲线调色

参考转载自: 知乎问题:如何使用曲线调色在学会曲线调色之前需要知道直方图的概念,详见我的前一篇博客。直方图中的左边是暗部,右边是亮部。 曲线则说明了一种直方图之间的对应的关系,当曲线为一条45度直线的时候,输入直方图和输出直方图是一样的。提升亮度降低亮度提高对比度降低对比度扩张暗部压缩暗部扩张亮部压缩亮部...

2018-03-05 11:50:47 704

原创 图像中的直方图

摄影中的直方图参考链接 一句话概括来说就是: 按256级灰阶离散化的概率密度函数摄影中直方图在摄影的前期的作用发现照片中过曝和欠曝区域提示环境亮度反差是否超过了相机能记录下来的宽容度 帮助我们准确的向右曝光,获得更高的信噪比(芯片收到的光线信号与芯片本身噪点数量的比值),获得质量更高的信息记录 直方图在后期影调调整中的作用 一张照片的明暗,我们...

2018-02-28 15:39:28 1923

原创 素描滤镜的实现

期望图: PS中的实现先贴上两个使用PS做图的链接: 参考链接1 参考链接2简单素描的实现链接1使用程序很容易在shader中复现。 总结起来就是以下几步: 灰度化 反色(反相) 高斯模糊 颜色减淡 灰度图直接对每一个像素乘于一个灰度的乘子即可得到当前像素的灰度:vec3 greyScale(vec3 inputcol...

2018-02-27 19:02:11 2814

原创 图像的锐化的实际使用以及实现

锐化的实际使用在探究图像的锐化算法之前,先来看看Adobe软件对于图像锐化的操作: 参考链接:蜂鸟网 锐化的原理其实很简单,就是通过增强物体边缘的对比度和区隔度,来让边缘显得更清晰锐利。 比如下图中,一边是75%灰度的深灰色物体,一边是25%灰度的浅灰色物体。 使用PS对上图锐化之后,可以看到边缘多出了四类线条,原本的75%灰色和25%灰色变成了6种颜色,从左到右...

2018-02-27 16:12:09 4375

转载 YCrCb与YPrPb的含义与区别

对一种颜色进行编码的方法统称为"颜色空间"或"色域",RGB和YUV,都是颜色空间的种类,Y'UV, YUV, YCbCr,YPbPr等专有名词都可以称为YUV,彼此有重叠分量视频信号(色差信号),通常采用YCbCr和YPbPr两种标识,YUV(YCbCr)是525i/625i(480i/576i)隔行分量输入接口YPbPr是从480i到720p的分量输

2018-02-26 10:28:17 2122

原创 Lanczos 重采样

参考链接:WikiLanczos重采样通常用于提高数字信号的采样率,或者将采样率转移一小部分采样间隔。它通常也用于多变量插值,例如调整大小或旋转数字图像。它被认为是几个简单过滤器之间的“最佳折中”。每个输入样本对内插值的影响由滤波器的重构内核L(x)定义,称为Lanczos内核。它是标准化的sinc函数sinc(x),由Lanczos窗口窗口化(相乘),或者sinc窗口,它是水平拉伸sin...

2018-02-24 10:45:02 3818

原创 图像中亮度和曝光的区别

最近在看GPUImage的时候,发现了这两个平时很常见的名词,平时并没有特别的关注,这里总结一下:亮度在GPUImage中,亮度调整的代码是这样的:gl_FragColor = vec4((textureColor.rgb + vec3(brightness)), textureColor.w);可以看出亮度调整的时整体的图像。 效果图: 曝光曝光调整的代码是这样的:...

2018-02-09 11:35:15 13255

转载 struct stat结构体简介

struct stat这个结构体是用来描述一个系统文件系统中的文件属性的结构。通过路径获得文件属性stat(const char* path, const stat* stat_struct)第一个参数是文件的路径,第二个参数是struct stat的指针。执行成功时,返回值为0执行失败时,error被自动设置为下面的值:EBADF: 文件描述词无效EFAULT:...

2018-02-07 10:16:44 6207

原创 Shader的if优化

Shader使用GPU来运算的,判断语句会使GPU中的硬件单元不能单纯的做计算,还需要去做逻辑判断,导致不能大规模数据通过相同的逻辑结构来做并行计算。GPU不得不根据判断语句构建多个流水线阶段,在流水线之间根据临时计算的值来做跳转。简单的if可以使用step这种函数来替换掉。例子1例如:float offset(float x){ if(x < 0...

2018-02-05 17:13:40 4660

原创 UVA 12716 GCD XOR 【数论】【素数】【暴力枚举】

题目大意思路题目大意传送门输入整数n,有多少对整数(a,b)满足:1gcd(a,b)=aXORb" role="presentation" style="position: relative;">gcd(a,b)=aXORbgcd(a,b)=aXORbgcd(a,b) = a XOR b 。例如: n=7,有4对:(3,2)(5,4)(6,4)(7,6

2018-01-03 23:33:19 296

原创 uva1627 - Team them up!【dp】

题目大意思路代码Hit题目大意传送门有n个人,把他们分成非空的两组,使得每个人都被分到一组,并且同组的人要相互认识。要求两组的人数要尽量接近。多解的时候输出任意方案,无解时候输出No Solution。思路组的编号为0和1。因为同组的人必须相互认识,如果已知某个人在组0,那么不认识此人的就必须在组1。让不认识关系组成一张图。例如: 1 认识 2 3 5 2 认识 1 3 4 5 3

2017-11-28 22:40:31 257

原创 RMQ和LCA问题

RMQ问题RMQ问题就是Range max/min Query。 A数列为:3 2 4 5 6 8 1 2 9 7 对于数列A,回答查询RMQ(A,i,j)的最大/小值:返回在数组A中下标在i和j之间的最小/最大值。最容易想到的问题是O(n)O(n)的查询,当查询数量过多的时候,时间花费可能很多。ST算法可以在O(nlogn)O(nlogn)的时间内预处理完成后,O(1)O(1)的时间内

2017-11-22 20:51:28 263

原创 UVA 10618 - Tango Tango Insurrection【DP】

题目大意Sample InputSample Output思路代码Hit题目大意传送门描述 跳舞机的踏板上有四个箭头:上下左右。当舞曲开始的时候,你需要在箭头移动到踏板上的时候,你需要在踏板上踩下相同的箭头。 不需要踩箭头的时候,踩箭头不会受到惩罚,当时需要踩箭头的时候,必须踩一下 踩箭头需要消耗能量,写一个程序来帮助选择轻松的踩踏方式,使得消耗的能量最少。消耗能量:如果这个脚上个

2017-11-20 23:03:58 336

原创 hiho #1571 : 小Hi与钢铁侠 【贪心】

题目大意思路错误思路1正确思路代码Hit题目大意传送门描述小Hi在帮助钢铁侠开发新的盔甲。这套新盔甲一共包含M种武器插槽,其中第i种插槽有Ci个。每个插槽最多安装一个武器模块。小Hi一共准备了N个武器模块,编号1~N。每个武器模块都有三个参数Vi, Pi和Ti。其中Vi描述了第i个模块的威力,Pi描述了该模块可以安装在哪种插槽中,Ti描述了该模块是否需要JARVIS的支持(1代表需要JAR

2017-11-08 22:44:45 222

原创 树型DP基础题目总结

树的最大独立集树的重心 树的重心被定义为:对于一棵n个结点的无根树,找到一个点,使得把树变成以该点为根的有根树的时候,最大子树的结点数最小。输入数据:结点数N无向边N-1条输出数据:重心为哪个点最大子树的结点数对无根树进行DFS,求取每个结点对应的最大子树的节点数,最后使整个值最小即可。#include <cstdio>#include <cstdlib>#include <c

2017-11-08 15:26:56 291

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除