- 博客(41)
- 资源 (10)
- 收藏
- 关注
原创 OpenGL入门第一篇——绘制一个三角形
GLFW:初始化GLFW,用来创建OpenGL上下文,以及操作窗口的第三方库OpenGL第三方库:GLFW入门篇GLAD:初始化GLAD,加载OpenGL函数指针地址的函数OpenGL第三方库:GLAD入门篇VBO(Vertex Buffer Object)顶点缓冲区对象,主要用来存储顶点的各种信息。优势:将模型的顶点信息放进VBO中,每次画模型时,数据将不必从CPU的内存中提取,而是直接...
2020-03-24 21:54:52
791
原创 杨辉三角I II
输入: 5输出:[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]class Solution {public: vector<vector<int>> generate(int numRows) { vector<vector<int>> Yang...
2019-09-17 16:14:45
386
原创 二进制求和 C++
问题描述:输入: a = "11", b = "1"输出: "100"解题思路:1.两个字符串的长度不一致,直接计算比较麻烦。对较短的字符串在前方进行‘0’补全,使字符串长度相等;2.字符串计算时,是从两个字符串末尾开始向前计算;如果有进位需要在求和字符串的前面插入字符;3.将字符串转换为整数进行计算,有4种计算结果:0,1,2,3.其中结果是0或1,进位标志flag=0.4.最...
2019-09-17 11:14:28
946
原创 matlab 相机标定结果解析
matlab标定工具箱+Add Images:输入方格的边长(mm)Calibrate开始校正,Export Camera Parameters目录IntrinsicMatrix:3*3的投影矩阵,EstimateSkew:径向畸变(RadialDistortion)有效的径向畸变系数(NumRadialDistortionCoeffcients):切...
2019-08-30 16:24:28
23908
25
原创 图像的直方图和直方图均衡化
1.图像的直方图直方图是图像中像素强度分布的图形表达方式。 它统计了每一个强度值所具有的像素个数。import cv2import matplotlib.pyplot as pltoriginal_img = cv2.imread("airplane.jpg")img_gray=cv2.cvtColor(original_img,cv2.COLOR_BGR2GRAY)img=...
2019-08-29 09:42:19
1233
原创 图像增强算法之灰度修正与变换
图像变换效果图:原理很简单,原始图像的灰度级范围在[0,255],与此对应的灰度值在0(黑色)和255(白色)之间。例如,把原图灰度值低于50的变换为0(黑色),高于200的变换为255(白色),可得到上图的变换图,由此来增强图像的对比度。import cv2original_img = cv2.imread("left.jpg")img_gray=cv2.cvtColor(o...
2019-08-28 17:20:29
2112
原创 Matlab为图像添加噪声
img=imread('D:/pattern.jpg');imshow(img);添加高斯噪声>> img_gaussian=imnoise(img, 'gaussian' , 0, 0.02 ); #均值为0,方差为0.02>> imshow(img_gaussian);添加泊松噪声>> img_poisson=imnoise(i...
2019-08-28 14:31:46
16091
3
原创 Matplotlib is currently using agg, which is a non-GUI backend
按照网上的解决办法添加import matplotlibmatplotlib.use('TkAgg')import matplotlib.pyplot as plt提示ImportError: No module named '_tkinter', please install the python3-tk package于是,在terminal输入以下命令sudo ap...
2019-07-18 09:55:23
1486
1
原创 Ubuntu 常用空间清理命令
# 删除apt-get下载的软件包sudo apt-get autoclean# 删除缓存的所有软件包sudo apt-get clean# 删除其他软件依赖的但现在已不用的软件包(保留配置文件)sudo apt-get autoremove#删除已安装包并不保留配置文件:apt-get --purge remove 包名apt-get下载的软件包位置:/var/cache/...
2019-06-21 15:13:15
1173
原创 Ubuntu 16.04 切换Python 版本
Ubuntu 16.04系统自带了python2.7和Python3.5(在/usr/bin目录中),默认是Python2.7我们将通过以下命令,切换Python版本:将python2.7 和 python3.5放入update-alternatives中,末尾是优先级,数字越大优先级越高 update-alternatives --install /usr/bin/python...
2019-06-21 15:00:39
616
原创 字符串移位
目录问题描述:字符串0123456789 向左移动i=3位 3456789012方法一:原始法方法二:空间换时间方法三:求模置换法方法四:分段递归交换法 ab1b2<->b2b1a方法五:求逆法问题描述:字符串0123456789 向左移动i=3位 3456789012有五种方法:方法一:原始法算法思想:从左向右依次移动一位,对所有数据平移...
2019-05-09 11:36:04
3062
1
原创 opencv+python实现一些图像的基本操作
1.生成一幅size=[512,512]图像import cv2import numpy as np#生成一幅黑底图像img_black=np.zeros([512,512], dtype = np.uint8)#生成一幅白底图像img=255-img_black2.绘制一个多边形#绘制图像lines = np.array([[[100,100], [300,150]...
2019-04-23 14:49:50
1065
原创 Ubuntu16.04安装cuda,cudnn,tensorflow-gpu(安装之前一定要对应好版本,先装驱动!)
1.安装显卡驱动https://www.cnblogs.com/myblog1993/p/9284071.html1.1官网的CUDA Toolkit和驱动的对应版本。图片来源:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html1.2查看电脑适配的版本https://www.nvidia.cn...
2019-04-19 13:16:14
1805
原创 windows下vs2017安装配置pcl 点云库
(1)安装配置参考https://www.cnblogs.com/li-yao7758258/p/8066352.html下载地址https://github.com/PointCloudLibrary/pcl/releases(2)常见错误函数声明被否决:将上图中的SDL检查改为否预处理器中添加_CRT_SECURE_NO_WARNINGS(3)链接器中输入的li...
2019-03-11 14:54:17
3275
原创 opencv resize()函数和imread(),基本图像操作
C++: void resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR )//0.5 0.5的比例缩放;cv::resize(img, dst,cv::Size(0,0),(0.5),(0.5),1);//将图像尺寸变为51...
2019-01-22 15:57:55
4268
原创 为什么要引入齐次坐标?
问题来源:在研究相机标定的过程中,从世界坐标系变换到相机坐标系和从相机坐标系与图像坐标系之间的转换时,都用到了齐次坐标升了一维,为什么不能直接进行转换呢?从世界坐标系到相机坐标系的变换开始说起,相机运动是一个刚体运动,它保证了同一个向量在各个坐标系下的长度和夹角都不会发生变化。这种变换成为欧式变换。可以想象为你把手机抛到空中,在它落地之前,只可能有空间位置和姿态的不同,而它自己的长度、各个...
2019-01-07 16:48:31
5023
1
原创 相机标定——张正友棋盘格标定法
目录为什么需要相机标定?相机标定可以做什么?相机标定后可以得到什么?什么情况下需要借助相机标定的方法?相机标定的原理实现相机标定的方法 为什么需要相机标定? 一个是由于每个镜头的在生产和组装过程中的畸变程度各不相同,通过相机标定可以校正这种镜头畸变,生成矫正后的图像——矫正透镜畸变; 另一个是根据标定后的到的相机参数建立相机成像几何模型,由获得的图像重构...
2019-01-04 14:14:05
75057
27
原创 OpenGL第一课
#include <windows.h>#include <GL/glut.h>void init(void){ glClearColor(1.0, 1.0, 1.0, 0.0); glMatrixMode(GL_PROJECTION);//用正投影将世界坐标系二维矩形区域的内容映射到屏幕上 gluOrtho2D(0.0, 200.0, 0.0, 150.0...
2018-09-16 16:33:23
316
原创 5.3 解决二维拉普拉斯方程:heat_2d
main.cpp#include "interactions.h"#include <stdio.h>//加载合适的头文件#include <stdlib.h>#include "kernel.h"#ifdef _WIN32#define WINDOWS_LEAN_AND_MEAN#define NOMINMAX#include <windows....
2018-09-05 23:15:33
2250
原创 5.2 一维网格上的导数计算
kernel.h#pragma once#ifndef KERNEL_H#define KERNEL_Hvoid ddParallel(float *out, const float *in, int n, float h);#endif // !KERNEL_Hkernel.cu#include "kernel.h"#define TPB 64__global...
2018-08-28 10:54:21
655
原创 4.3 stability应用程序
在4.2 flashlight基础上的改进kernel.h#pragma once#ifndef KERNEL_H#define KERNEL_Hstruct uchar4;struct int2;void kernelLauncher(uchar4 *d_out, int w, int h, float p, int s);#endif // !KERNEL_Hk...
2018-08-27 12:26:13
338
原创 第四章 二维网格与交互式图形-4.2通过图形交互实时显示——flashlight
main.cpp #include <stdio.h>//加载合适的头文件#include <stdlib.h>#include "kernel.h"#ifdef _WIN32#define WINDOWS_LEAN_AND_MEAN#define NOMINMAX#include <windows.h>#endif // _WIN32#i...
2018-08-24 14:24:01
823
原创 第三章 从循环到网络
3.1 并行化dist_v1#include <stdio.h>#include "stdlib.h"#define N 64#define TPB 32//每个线程块包含32个线程__device__ float scale(int i, int n){ return ((float)i / (n - 1));}__device__ float dis...
2018-07-30 14:50:01
254
原创 第二章 CUDA基础知识
2.1 CUDA并行模式从串行到CUDA并行同时涉及硬件和软件两方面。硬件的转换涉及包含了多个运算单元以及运算规划和数据传输机制的芯片。软件的转换涉及API以及对编程语言的扩展。主机:CPU和内存设备:GPU和显存CUDA芯片结构:CUDA引用了单指令多线程(SIMT)的并行模式。CUDA GPU包含了大量的基础计算单元,这些单元被称为核(core),每一个核包...
2018-07-29 23:36:46
889
原创 第一章 起步——串行程序
dist_v1/main.cpp#include <math.h>#include "stdlib.h"#define N 64float scale(int i, int n){ return ((float)i / (n - 1));}float distance(float x1, float x2){ return sqrt((x2 - x1)*(x...
2018-07-29 22:35:30
623
原创 算法概论绪论答案
0.1 (f)f=10logn g=logn² f=θ(g)0.3因此,c≥logφ φ≈0.618c)应该为求c的最小值 c≈log0.618
2018-07-28 17:28:16
974
原创 OPENCV3.1 对手写数据集MNIST实现SVM
1.开发环境-Win10-Visual Studio 2015 64位-OpenCV3.12.MNIST手写数据库MNIST数据集分为以下四部分: (1) train-images-idx3-ubyte 训练图像的集合,共有60000张,大小是28×28 (2) train-labels-idx1-ubyte 对应于训练图像的标签集,为0~9 (3) t10k-images-idx3-ubyte ...
2018-05-08 14:40:14
1215
原创 opencv3.1实现SVM图像分类算法
#include "opencv2/opencv.hpp"using namespace cv;using namespace cv::ml;int main(int, char**){ int width = 512, height = 512; Mat image = Mat::zeros(height, width, CV_8UC3); //创建窗口可视化 // ...
2018-05-08 09:42:30
1729
原创 SVM实现图像分类
SVM的原理不多赘述在MATLAB中配置libsvm,网上有很多教程,注:64位的系统不需要编译,配置好MATLAB的路径就可以使用啦介绍libsvm实现分类的两个常用函数svmtrain——train svm 实现分类——model=svm(train_label,train_matrix);svmpredict——用svm对测试集进行预测——[predict_label]=svmpredict...
2018-05-07 16:01:20
9762
原创 蓝图类间通信的三种方式
用蓝图A来调用蓝图B 实现AB之间的通信1 完全遍历场景中的物体 Get all actors of class,对蓝图B的所有实例执行相同的操作2 通过建立蓝图接口实现AB之间的通信(常用)在需要被调用的蓝图B中实现该接口中的函数在A中调用实现的接口函数3 通过事件调度器实现蓝图类间的通信(在A中产生时间调度器)在关卡蓝图的开始游戏时进行绑定在A中产生时间调度器在关卡蓝图中实现调用蓝图B实现了改...
2018-04-21 10:17:16
3879
1
原创 一个简单的OpenGL程序 绘制一个多边形
OpenGL配置请参考 https://blog.youkuaiyun.com/jennybi/article/details/79736349#include <windows.h>#include <gl/gl.h>#include <gl/GLAUX.H>void CALLBACK display(void){ glClearColor(0.0, 0.0, 0.0, ...
2018-04-17 11:36:43
2726
原创 TensorFlow环境搭建
一、下载安装cuda 9.0(必须是9.0 不能是9.1)TensorFlow 有两个版本:CPU 版本和 GPU 版本。GPU 版本需要 CUDA 和 cuDNN 的支持,CPU 版本不需要。如果你要安装 GPU 版本,请先确认你的显卡支持 CUDA。我安装的是 GPU 版本,采用 pip 安装方式,所以就以 GPU 安装为例,CPU 版本只不过不需要安装 CUDA 和 cuDNN。在 这里 确...
2018-04-12 23:30:57
256
原创 OPENGL错误之程序无法正常启动及无法打开freeglut.lib文件
无法打开freeglut.lib文件1 在程序开头添加#define GLEW_STATIC2 lib库有glew32.lib改成glew32s.lib程序无法正常启动1 项目配置在x862 OpenGL库的配置要注意然后换了个32位的freeglut.dll和freeglut.lib(程序要在32位系统编译)放到正确的目录C:\Windows\SysWOW64 (针对64位Windows...
2018-04-12 00:20:16
3531
1
转载 UE4蓝图小技巧
按住某个按键,鼠标左键点击蓝图,会在相应地方生成对应的节点。 比如,A对应Add节点,B对应Branch节点,S对应Sequence节点,F对应Foreach节点等等。(下图示例Branch节点) 鼠标双击连线,会自动生成“路线节点”,相当于“reroute”功能。这个功能超级好用,简直福音啊。 注意随手编译更改过的蓝图。如有未编译过的蓝图而直接运行游戏预览的话,可能要”卡死“很长时间(4.8版本...
2018-04-11 10:30:50
5598
原创 UE4学习第二篇之常用快捷键
F1:帮助 F2: 修改名称 F9:截图 Ctrl+A:全选择 Shift+A+鼠标左键:选择中之前所有 Ctrl+Z: 回退 Ctrl+空格:删除textbox一个词 空格:更改编辑方式,旋转,缩放,平移。 Ctrl+shift+F:内容浏览器 Ctrl+N:新建关卡 ctrl+o:打开关卡 Ctrl+W:重...
2018-04-09 21:25:43
6706
原创 UE4第一篇之蓝图入门
一、关卡蓝图(Level Blueprint)关卡蓝图是一种特殊类型的蓝图,是作用于整个关卡的全局事件图表。关卡事件或者关卡中的Actor的特定实例,用于激活以函数调用或者流程控制操作的形式呈现的动作序列。关卡蓝图提供了针对关卡动态载入、Matinee以及给放置到关卡中的Actor绑定事件的机制。二、类蓝图 (Blueprint Class)类蓝图是一种允许内容创建者轻松地基于现有游戏性类添加功能...
2018-04-09 21:21:30
4980
原创 Arcball实现模型变换
Arcball的基本原理由于目前大多的显示器是二维的,要控制三维物体的旋转就显得不那么直接了。ArcBall是一种将二维鼠标位置的变化映射到三维物体旋转的方法,让用户通过很直观的方法控制物体旋转。网格代表绘制 3D 模型的窗口,上面放了个半球,这个球就是轨迹球。 假设鼠标在网格上的某点 A,过 A 点作网格所在平面的垂线,与半球相交于点 P, P 就是 A 在轨迹球上的投影。鼠标从 A1 点沿直线...
2018-03-29 14:30:03
4307
2
原创 opengl配置
所需配置的全部文件https://download.youkuaiyun.com/download/jennybi/10315187glew配置:下载:http://glew.sourceforge.net/解压: ...
2018-03-29 00:30:04
1356
原创 数据结构笔记之线性表
一、概述1.数据的逻辑结构与存储结构的基本概念;2.算法的定义、基本性质以及算法分析的基本概念,包括采用大?形式表示时间复杂度和空间复杂度。二、线性表1.线性关系、线性表的定义,线性表的基本操作;2.线性表的顺序存储结构与链式存储结构(包括单(向)链表、循环链表和双向链表)的构造原理;3.在以上两种存储结构的基础上对线性表实施的基本操作,包括顺序表的
2017-10-14 14:15:59
393
opengl读取.obj三维模型,arcball实现鼠标点击实现模型变换(放大,缩小,平移)
2018-03-29
OpenGL全部配置库(glew,glfw,glut,gltools)
2018-03-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人