自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

心如止水-GISer的成长之路

C/C++ 地理信息系统 计算机图形学 互联网地图

  • 博客(131)
  • 资源 (20)
  • 收藏
  • 关注

原创 ARM64汇编基础

本人主要记录自学arm64汇编过程中的笔记

2023-09-17 20:46:39 892

原创 iOS编译openmp

iOS编译openmp。

2022-08-22 19:52:38 693 2

原创 intel -tbb 源码cmake构建

Android上还没找到编译出so的方法,mac和iOS已经编译成功。cmake -DTBB_ROOT=tbb根目录 ../

2022-08-15 19:27:37 995

原创 DirectXShaderCompiler mac编译

mac记录directshadercompiler编译

2022-07-30 16:21:55 461

原创 重学图形学-作业-贝塞尔曲线

games101作业4

2022-06-05 17:18:22 193

原创 C/C++获得对齐的内存的跨平台解决方案

在C/C++开发的时候,有时候需要获得内存对齐的内存块,这一需求主要源于多媒体指令集需要内存对齐的内存块,这样处理速度会快一点。例如SSE/SSE2/MMX/AVX等指令集都需要对齐的内存。这些多媒体指令集常用于语音合成、图像处理、3D图形学等领域。下面是封装的内存对齐的内存分配函数。void* aligned_malloc(size_t size, size_t align){ voi

2016-12-09 20:54:45 3240 2

原创 VS2008配置NDK开发环境

看到很多网上的文章都有写VS配置NDK开发环境,我是参考了其中的一篇文章,连接是点击打开链接。但是这篇文章里面的配置不能关联Application.mk文件。所以觉得不是很方便,经过一阵摸索,终于找到一个可以 关联Application.mk文件的方法。软件准备:1、VS20082、NDK具体步骤如下:1、打开VS2008,新建Makefile工程。2、在设置中设置编译、重新编译、清理的命令,de

2016-12-02 23:28:42 4350

原创 OpenGL ES着色语言-UBO

Uniform Buffer Objects(简称UBO)是OpenGL3.1引入的。UBO是显卡上的一块缓冲区,即GPU buffer。它允许将数据从客户端程序传送到GLSL程序中。    使用UBO的最大好处是可以在各个shader之间共享数据。    下面还是以OpenGL 4.0 shading language cookbook中的例子说明。    在OpenGL的shader中,UBO

2016-11-30 13:22:35 4311

原创 OpenGL ES着色语言-光照效果之散射光

OpenGL光照模型,在固定管线中,主要是调用OpenGL函数实现,如果使用着色器,该怎么实现。本文的例子是移植OpenGL 4.0 Shading Language Cookbook中第二章的例子。代码已经移植到Android上。    散射光计算主要涉及到两个向量,第一个是顶点到光源的向量S,以及顶点处的法向量N。光照计算在眼睛坐标中进行。具体见下图所示:有这两个向量之后,还要考虑顶点处的漫反

2016-11-20 21:08:19 5565

原创 GLSL程序对象的C++封装

在OpenGL的shader编程中,最常用的可能就是程序对象了,GLSL的程序对象的创建、加载shader等步骤都是固定的,如果每次都写同样的代码,觉得十分浪费时间,所以现在就将我在Shader学习过程中自己封装的GLSLProgram类奉献出来供大家参考:头文件如下:/* * GLSLProgram.h * * Created * Author: zhouxuguang *

2016-11-20 15:53:09 5434

原创 常用位操作的c++实现

看到这个标题,可能大家会误解,其实就是贡献几个比较实用的运用位运算实现的操作,这对于加快程序的运行速度很有帮助。具体的实现是参考http://graphics.stanford.edu/~seander/bithacks.html实现的。   下面给出其函数声明及其实现。    //判断该整数是否是2的整数次方bool IsPowerOfTwo (unsigned int value);boo

2016-10-10 20:40:22 3205

原创 c++三种使用shared_ptr的方式

在c++中,我们是越来越多的使用智能指针,其中我们说的智能指针通常是指基于引用计数的智能指针,在c++11标准中就是std::shared_ptr。它的特点是可以安全的放入STL容器中。有以下三种方式可以使用shared_ptr1、如果你的c++编程环境支持c++ 11标准,那么可以直接使用std::shared_ptr,它定义在memory文件中。2、如果你的c++实现支持C++ T...

2016-09-11 15:48:27 8782

原创 Hilbert曲线简介及生成算法

Hilbert曲线 Hilbert曲线是一种填充曲线,类似的填充曲线还包括Z曲线,格雷码等其他方法。Hilbert曲线依据自身空间填充曲线的特性,可以线性地贯穿二维或者更高维度每个离散单元,并且仅仅穿过一次,并对每个离散单元进行线性排序和编码,该编码作为该单元的唯一标识。空间填充曲线可以将高维空间中没有良好顺序的数据映射到一维空间,经过这种编码方式,空间上相邻的对象会邻近存储在一块,可以减少IO的

2016-03-05 18:51:20 14071

原创 GIS中的WKB介绍

GIS中的WKB介绍WKB的全称是The Well-known Binary,也简称WKB,OGC与ISO/TC211都做出了同样的规范,它是用来几何体的表达。即用连续的二进制流来表达几何体,这样在GIS互操作方面也有好处。现代GIS软件的底层模块中可以说都有关于WKB解析代码。在二进制存储中有大尾端和小尾端之分,通常在二进制流的第一个字节就指定,这样在这个字节之后的字节流就可以按照相应的大小尾端

2015-10-21 14:20:52 17466

原创 地球椭球面上多边形面积量算(C++代码)

昨天突然测试的时候发现以前产品中写的地球椭球面上面积计算的代码有点问题,于是今天就彻底修正,从QGIS中抠出代码来用C++重写了一下,新代码可以比较准确计算椭球面上多边形的面积,这个基础函数对空间量算功能中的面积量测非常重要,在这里共享出来供大家参考甚至直接拿过去用。       头文件如下: /*** @file DistanceArea.h* @brief

2015-05-15 20:32:28 8980 11

原创 GLSL实现图像处理

今天晚上没事将以前弄的OPENGL着色语言实现滤镜效果的实现和大家分享一下,滤镜主要包括图像的对比度调整、浮雕效果、彩色图片灰度化、卷积等操作。         这些操作其本质上是属于图像处理的东西,OpenGL实现图像处理主要是用到了GLSL着色语言。具体到着色器就是片段着色器。         说白了就是如何用OpenGL做通用GPU计算,OpenGL做通用计算的步骤主要如下:读取数据->顶点

2015-05-06 21:02:23 24464 4

原创 跨平台C、C++代码注意的事项

在我们的开发中,跨平台的需求越来越强烈,如何保持C/C++代码能在多个平台上编译,是一个比较值得研究的问题。关于跨平台的文章网上很多,跨平台的库网上也很多。那么我从自己的跨平台开发经验谈一谈自己的心得,希望对大家能够起到一定的作用。主要涉及到Windows和linux两个操作系统。1、  关于路径和头文件路径分隔符的问题在Windows中,正斜杠和反斜杠都可以,但是在Linux中,只能是/。在Wi

2015-04-21 09:49:03 8572 2

原创 OpenGL中投影变换函数的实现

在某些情况下,我们需要自己实现透视投影和正射投影的函数,那么根据前一篇转载的博客,OpenGL投影矩阵的推导,我们很容易写出glFrustum和glOrtho函数的实现。glFrustum的函数实现如下:void MyFrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdo

2015-04-12 17:44:51 4750

转载 OpenGL投影矩阵的推导

转载地址:http://www.songho.ca/opengl/gl_projectionmatrix.htmlOpenGL Projection MatrixRelated Topics: OpenGL TransformationOverviewPerspective ProjectionOrthographic ProjectionUpdates: The MathML version i

2015-04-12 17:13:55 5140

转载 OpenGL坐标变换

转载地址:http://www.songho.ca/opengl/gl_transform.htmlOpenGL TransformationRelated Topics: OpenGL Pipeline, OpenGL Projection Matrix, OpenGL Matrix Class Download: matrixModelView.zip, matrixProjection.zi

2015-04-12 17:12:50 6464

原创 OpenGL中gluPerspective函数和glFrustum函数的关系

关于这两个函数,大部分书和以及网上double很少有资料去介绍它。今天就将以前探索到的一些东西分享给大家。gluPerspective函数是对glFrustum函数的一种简单封装,那么gluPerspective的参数如何转化为glFrustum的参数呢?    我们知道gluPerspective函数创建的是一个上下以及左右对称的一个视景体。fovy是视角的大小,以度为单位;aspect是视景体

2015-04-11 21:40:21 4486

原创 地球椭球体基本要素的计算

地球椭球体基本要素的计算,主要包括纬线弧长、子午线弧长、椭球面上梯形面积,以及同一个椭球体下大地坐标和空间直角坐标之间的转换等。为了方便,写了一个类如下,方便调用,在此也分享给大家:头文件如下:/******************************************************************************** 版权所有(C) 福建省空间信息工程研究中

2015-04-06 17:21:56 6338 2

原创 三维空间坐标的相似变换原理与实现

说到这个博客的题目,可能觉得有点大,在测绘学领域中三维空间坐标的相似变换用得非常多。那么什么是三维坐标的相似变换呢?就是在两个三维直角坐标系中,坐标进行变换,两个坐标系之间变换需要七个参数,即三个平移分量,以及三个旋转参数和一个尺度因子。这里用到的模型采用摄影测量学中的变换模型,具体推导见摄影测量学书籍:

2015-04-06 16:13:25 13980 4

原创 OpenGL中使用Shader的基本步骤

在OpenGL中,创建和使用Shader的基本步骤如下:1、通过glCreateShader创建一个或多个着色器对象:2、使用glShaderSource加载着色器的源代码,和着色器对象关联;3、glCompileShader编译每个着色器对象4、使用glCreateProgram创建程序对象5、通过glAttachShader将所有着色器对象绑定到程序对象上;6、glLinkProgram链接程

2015-04-04 15:56:24 5242

原创 OpenGL实现通用GPU计算概述

可能比较早一点做GPU计算的开发人员会对OpenGL做通用GPU计算,随着GPU计算技术的兴起,越来越多的技术出现,比如OpenCL、CUDA、OpenAcc等,这些都是专门用来做并行计算的标准或者说接口。       OpenGL用来做通用GPU计算主要是利用纹理存储器在GPU中计算以及把结果取回内存,这大概是OpenGL做通用GPU计算最好的选择。 大概的流程主要就是先创建OpenGL的环境,

2015-03-31 19:18:37 15314 4

原创 计算机图形学之数字微分分析画线算法

计算机图形学之数字微分分析画线算法 现代计算机绘制,我们程序员经常会碰到画图的编程问题,并且现在的画图的API很多,换句话说,图形API非常丰富,从TC的graphic到Windows的GDI/GDI+,以及跨平台的开放标准OpenGL。这些API都提供了基本的绘图函数,如绘制直线,圆以及椭圆之类的。 画直线的算法也叫做直线的光栅化,我们知道,我们的计算机显示的屏幕实际上是一个个的像素组成的,绘图

2015-01-17 20:37:04 3871 1

原创 CUDA图像旋转的实现

CUDA图像旋转的实现     由于最近工作比较忙,有一段时间没写博客了,今天就将以前基于CUDA做的图像旋转的demo奉献给大家。在网上看到很多图像旋转的博客文章,可以说大部分做的只是图像旋转后还保持原来图像的大小,那么这就带来一个问题,旋转后 图像有一部分内容会造成缺失,所以为了保持图像的完整性,需要确定旋转后图像的大小,即多少行和列。     由于本人主要从事3S方面的研发工作,读取图像我就

2014-12-29 20:32:19 9405 2

原创 CUDA和OpenCL异同点比较

CUDA和OpenCL异同点比较 一、概述    对CUDA和opencl有一定的编程经验,但是细心的人可以发现,OPENCL就是仿照CUDA来做的。既然两个GPU的编程框架如此相像,那么他们究竟有什么不同呢?下面就一一道来。 二、数据并行的模型OpenCL采用的数据并行模型就是采用CUDA的数据并行模型。下面的表格反应了CUDA和opencl并行模型之间的映射关系。 OpenCL CUDA

2014-12-16 21:25:35 11005 5

原创 遥感影像显示相关的技术总结

遥感影像显示相关的技术总结 前言    从事遥感影像和图像处理有一段时间了,今天就把遥感影像显示相关的技术和大家分享一下。    平常我们用的GIS软件或者说遥感软件都能讲遥感影像的数据显示在屏幕上,并且有些显示效果还不错,其中ENVI的显示效果是业界做得比较好的,尤其是ENVI5.0之后的大视图,能够根据真彩色的波段自动选择波段进行显示。遥感影像显示其实就是图像显示,和我们生活中常见的图像显示没

2014-10-21 22:09:52 9934 5

原创 矩阵的特征值和特征向量的雅克比算法C/C++实现

矩阵的特征值和特征向量是线性代数以及矩阵论中非常重要的一个概念。在遥感领域也是经常用到,比如多光谱以及高光谱图像的主成分分析要求解波段间协方差矩阵或者相关系数矩阵的特征值和特征向量。根据普通线性代数中的概念,特征值和特征向量可以用传统的方法求得,但是实际项目中一般都是用数值分析的方法来计算,这里介绍一下雅可比迭代法求解特征值和特征向量。雅克比方法用于求实对称阵的全部特征值、特征向量。对于实对称阵

2014-10-18 16:10:29 55065 35

原创 DEM山体阴影原理以及算法详解

山体阴影原理以及算法详解 山体阴影基本原理:山体阴影是假想一个光源在某个方向和某个太阳高度的模拟下,用过临近像元的计算来生成一副0-255的灰度图。 一、山体阴影的主要参数:1、  太阳光线的入射角度:这个角度的量算起点是正北方向,按照顺时针的方向,角度的范围是0到360度,如下图所示,默认的角度是315度,西北方向,如下图所示:2、  太阳高度角:太阳高度角也简称太阳高度。是太阳光线和当地地平面

2014-10-12 13:19:50 11540 5

原创 OpenCL内核函数支持double和结构体

在opencl开发中,有时需要保证精度,需要支持double类型,但是double类型在opencl标准里面不是要求强制实现的,有些设备支持,有些不支持,如果你的设备支持的话,就需要在所有出现在double的最前面声明如下:#pragma OPENCL EXTENSION cl_khr_fp64: enable但是这也有一个问题,就是不能保证程序的可移植性,之前在编写地形因子提取算法时,在某些AM

2014-09-14 16:50:29 5200 4

原创 基于GPU的高分一号影像正射校正的设计与实现

有一段时间没有写博客了,今天就将最近业余时间做的高分一号的正射纠正共享出来,和大家分享。一 RPC正射校正的原理影像正射校正的方法有很多,主要包含两大类:一类是严格的几何纠正模型,另一类是近似几何纠正模型。当遥感影像的成像模型和有关参数已知时,可以根据严格的成像模型来校正图像,这种方法属于严格几何纠正,最具代表的是共线方程法。当传感器成像模型未知或者无法获取相关的辅助参数时,可以用假定的数学模型模

2014-09-13 20:41:24 13616 10

原创 数字在排序数组中出现的起始索引号

题目如下:给定一个升序的整数数组,查找某一个值在数组中出现的索引号,例如,输入数组2,3,3,4,4,5;查找的数是3,则返回1,2。时间复杂度要求为O(logN)。        初次拿到这个题目可以立即想到用二分查找来做,先比较中间的数和要查找的数,如果关键字(要查找的数)小于中间的数,那么在数组的左半部分继续查找,如果关键字大于中间的数,那么在数组的右半部分继续查找,如果关键字和中间的数相等

2014-08-28 21:13:08 2989

原创 有序二维数组中搜索特定的数

关于二维有序数组中搜索,其题目如下:给定一个矩阵,都是整数,每一行从左到右升序,每一列从上到下有序,例如下面的矩阵[ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50]]请用最快的时间找出特定的数,例如,输入3,存在这个数,输入15,不存在这个数。实现如下的函数bool FindArray(int *pArray,int nWid

2014-08-27 20:00:24 4543 2

原创 二维图形旋转公式的推导

关于二维图形旋转可能在很多计算机图形学相关的书籍上都会介绍,然而真正理解公式推导过程的却讲得不多。那么如何推导出二维图形绕某一点旋转的公式呢?我在这里就将其推导过程简要的说明一下。其实推导过程比较简单,首先我们来看一幅图,看看如何推导出二维图形绕原点进行旋转的公式。上图画的比较粗略,不过能说明问题就够了。假设旋转前的点位于P处,旋转之后的点位于P'处。如何求旋转之后的点P'坐标?在图中,旋转之前P

2014-06-17 21:31:11 25951 7

原创 C++插件架构浅谈与初步实现

一、插件架构初步介绍    想到写本博客,也没想到更好的名字,目前就先命这个名吧。说到插件架构,或许大部分IT从业者都听过或者某些牛人也自己实现过稳定高效的插件框架。目前有很多软件以及库都是基于插件架构,例如PS、我所在行业的GIS软件如Arcgis、QGIS、还比如开源图形引擎OGRE以及OSG,这些都是插件架构,通过插件架构来进行功能的扩展。那到底什么事插件架构呢?我的理解是系统运行时在需要某

2014-06-08 15:16:29 31979 17

原创 利用GDAL实现影像的几何校正

一、概述    遥感影像和地理坐标进行关联的方式一般有好几种,一种是直接给出了仿射变换系数,即6个参数,左上角地理坐标,纵横方向上的分辨率,以及旋转系数。在这种情况下,求出某一像素点的地理坐标非常容易,直接用公式可以求出,具体代码如下:void CPL_STDCALL GDALApplyGeoTransform(double *padfGeoTransform,

2014-06-01 14:40:55 24830 10

原创 基于OpenCL的数字地形分析之坡度坡向提取

基于OpenCL的数字地形分析之坡度坡向提取    又有一段时间没有发表博客了,可能最近工作有点忙。今天就把最近的学习和研究成果和大家分享一下。对于GIS稍微有点了解的人都知道地形分析中的坡度和坡向,这是数字地形分析中最基本的分析了,对于数字地形分析中很多计算都是邻域分析,所以非常适合数据并行。一、相关概念和公式    坡度严格地讲,是地表任意一点过该点的切平面与水平面之间的夹角。坡度表示了地表的

2014-04-13 01:41:24 7252 3

原创 OpenCL相关函数简单封装

在opencl编程中,很多时候需要初始化很多东西,比如查询设备,选择计算设备,初始化上下文,构建程序和编译内核程序。如果每次都重写写一遍这些过程,就会感动很繁琐,所以,我就简单封装了几个函数,用于我的opencl编程中。关于从文本文件构建opencl程序在OpenCL从文本文件构建程序对象已经讲解,下面就给出初始化opencl,以及构建程序和编译内核程序的源代码:       void OpenC

2014-04-12 19:58:54 4155 1

OpenGL 环形管道模型

OpenGL 环形管道模型

2016-11-20

CUDA和OPENCL遥感影像正射校正

基于CUDA和OpenCL实现的高分一号遥感影像的RPC正射校正,并且取得了较高的加速比,适合遥感和图像处理的研发人员,对并行计算感兴趣的也可以下载

2014-09-13

C++跨平台插件实例

本资源师自己实现的一套插件机制,用标准C/C++实现,简单修改可以实现跨平台调用,希望给想学习插件架构的同志一个参考

2014-06-08

OpenCL坡度提取GDAL

OpenCL坡度提取GDAL 使用先进的opencl异构计算技术,可以作为DEM地形分析的新思路

2014-04-13

LibPQ编程接口

LibPQ编程接口,整理自postgresql官方文档,很好的文档,当然是免费

2014-03-05

eoeAndroid特刊

eoeAndroid特刊1-25期的,免分的,大家拿去吧!是国内最大的中文android开发论坛支持编写的

2012-09-23

排序算法汇总

本人实现的排序算法,没有采用泛型,以后再改进

2012-05-15

深入OCI教程

本文学习的OCI底层接口的库,文档总共76页,比较详细,欢迎大家下载,拍砖1

2012-04-06

c++学习笔记

c++学习笔记,本人开发过程中遇到的一些问题,现在和大家分享

2011-09-28

地理信息系统各个学校考研试题(还包括其他)

地理信息系统 考研 包括gis,遥感,测量学,地图学,数据结构

2011-05-19

数据包络分析(经济管理理工科)

数据包络分经济管理类的好书,也适合理工科学生

2010-05-24

MapGIS\MapGIS操作手册地理信息系统

MapGIS操作手册地理信息系统 大家都有分啊 不要看看就走啊

2010-02-10

MapGIS地理信息系统操作手册

MapGIS地理信息系统操作手册 是MapGIS的不要金额的饿的多大点事

2010-02-10

为我们的世界建模 地理信息系统

为我们的世界建模 地理信息系统 这是我好不容易找到的 大家就拿去吧

2010-02-10

MAPGIS地理信息系统二次开发

MAPGIS地理信息系统二次开发 不可多得的二次开发资料 希望大家有用

2010-02-10

山东科大研究生大容量试题库

山东科大研究生大容量试题库 大家可以下下看看啊 都是考研人

2010-02-10

基于GIS的数量方法与应用

基于GIS的数量方法与应用 希望对发的是没有重的 大家过年好啊

2010-02-10

2007年第四届GIS年会论文集(70-90)

2007年 第四届 GIS 年会 论文集 (70-90) 是您学习的好资料 希望有用 呵呵

2010-02-10

考研地理研究生入学题

很多的试题 绝对是经典 我是刚考了的 希望对大家都有帮助

2010-02-10

空空如也

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

TA关注的人

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