使用C#版本GDAL读取复数图像】的更多相关文章

GDAL的C#版本虽然在很多算法接口没有导出,但是在读写数据中的接口基本上都是完全导出了.使用ReadRaster和WriteRaster方法来进行读写,同时对这两个方法进行了重载,对于常用的数据类型可以不用指定数据类型直接进行读取即可.但是对于复数类型就有点复杂了.下面就针对GDAL如何来读取复数数据来进行一个简单的说明.   我们知道,在使用GDAL读取数据的时候使用的是ReadRaster这个函数,这个函数重载了6个,函数声明分别如下,以Dataset的ReadRaster为例,Band类…
长话短说 版本区间[OpenCV3.0.0, OpenCV3.4.1]内的OpenCV,(至少在windows下,使用官方提供的预编译版本),imread读取jpg图片后的像素值,和版本区间[OpenCV2.4.9, OpenCV2.4.13.6]结果不一样,虽然imshow看到的结果差不多. 从编码解码角度考虑并没有谁对谁错,但是要注意到,imread结果的不同对于CNN框架前向计算结果的影响.(妈的,因为这个difference,周末被迫加班,对OpenCV多了一份不信任) 关键是,这个不同…
读写影像可以说是图像处理最基础的一步.关于使用GDAL读写影像,平时也在网上查了很多资料,就想结合自己的使用心得,做做简单的总结. 在这里写一个例子:裁剪lena图像的某部分内容,将其放入到新创建的.tif文.以此来说明GDAL读写影像的具体实现. 1.打开图像 用GDAL打开lena.bmp,实现如下.注意这里打开图像,指的是获取图像的头文件,以此得到图像的一些信息,没有涉及到读取像素操作. GDALAllRegister(); //GDAL所有操作都需要先注册格式 CPLSetConfigO…
目录 1. 问题 2. 结论 3. 例外 1. 问题 笔者在处理地理栅格数据的时候,总是会发生偏差半个像素的问题. 比如说通过ArcMap打开一张.tif,查看其地理信息:同时用记事本打开.tfw,比较两者得地理信息: 同样的起点位置(左上角坐标),两者却相差半个像素的距离. 而对于另一些数据,比较ArcMap与tfw的信息,两者的地理信息又可以是一样的.那么对于地理栅格数据,其起点位置(左上角坐标)是以哪一种为准?为什么两者会相差半个像素的距离? 而GDAL可以也读取地理栅格数据(DEM.DO…
在GIS软件的开发中,经常用到开源库GDAL读取Shp数据,当shp数据中包含投影信息时,可能会遇到“Unable to open EPSG support file gcs.csv”错误提示,该错误是由于没有设置“GDAL_DATA”引起的. 1.Shpefile文件组成 Shapefile文件指的是一种文件存储的方法,实际上该种文件格式是由多个文件组成的.其中,要组成一个Shapefile,有三个文件是必不可少的,它们分别是".shp", ".shx"与 &qu…
作者:朱金灿 来源:http://blog.csdn.net/clever101 首先是读取遥感图像的R.G.B波段数据的做法.读取R.G.B波段数据的像素值主要通过IRaster接口的Read方法在Raster上读取指定位置的像素块(PixelBlock),然后通过像素块的GetVal方法获取指定Band中位置的像素值.首先我们来看一下IPixelBlock接口的GetVal方法,其语法如下: public object GetVal( int plane, int X, int Y); 第一…
vtk获取内存中图像数据 原文链接:http://blog.csdn.net/zmy3376365/article/details/7717721 内存中有段图片数据  ,使用VTK来读入,然后就可以通过getoutputport() /getoutput()来获取了 vtkImageImport *importer = vtkImageImport::New(); importer->SetWholeExtent( 0, m_image->width-1, 0, m_image->he…
第一种方法: 读了一个单一图像: read_image(Image,'fabrik') 这种方式可以快速的读取软件自身携带的库图像文件,系统设定了库图像映像文件的快速读取方式,我们也可以通过绝对地址的方式来读取指定的目录文件: read_image(Image1,'E:/Halcon一日一练/参考资料/images/图片1.jpg') 图像设定的映像文件目录可以进行关闭,set_system函数可以对映像文件目录进行关闭,关闭之后必须读取图像的绝对地址,否则,系统将会报错, set_system…
在很多时候,我们的图像数据往往都不是文件方式存储在磁盘上,而是可能从网络或者数据库中获取的是二进制的图像数据流.最简单的方式和最容易想到的方式就是将这个文件流保存到磁盘上形成一个文件,然后再使用GDAL来打开进行处理.但是这样有一个不太好的地方就是需要生成一个磁盘的临时文件,而且在磁盘上折腾了一圈后会增加不必要的系统开销. 针对这个文件,GDAL库里面已经有现成的API来进行处理,下面就使用一个简单的例子来进行说明,代码如下: GByte *GetStream(const char* pszFi…
在上一篇博客中,讲了一下使用GDAL从文件流中构造一个GDAL可以识别的数据来进行处理.原以为这个接口在C#中没有,仔细看了下GDAL库中源码,发现C#版本也有类似的函数,下面是GDAL库中的一个C#使用示例代码. using System; using System.IO; using System.Runtime.InteropServices; using OSGeo.GDAL; /// <summary> /// 一个基于C#语言的简单示例,使用内存文件 /// </summar…
1.gdal包简介 gdal是空间数据处理的开源包,其支持超过100种栅格数据类型,涵盖所有主流GIS与RS数据格式,包括Arc/Info ASCII Grid(asc),GeoTiff (tiff),Erdas Imagine Images(img),ASCII DEM(dem) 等格式. 2.安装gdal包 (1)通过此链接查找并下载gdal包:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame(根据自己的系统及python版本选择对应的gd…
探测地球云层分布的CloudSat和CALIPSO卫星 http://www.nasa.gov/mission_pages/calipso/main/index.html http://www.nasa.gov/topics/earth/features/calipso-1billion.html Cloud-Aerosol Lidar and Infrared Pathfinder Satellite Observation (CALIPSO) The occasion was on CALI…
// gdal_geotiff.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include "gdal_priv.h" #include <iostream> #include <iomanip> #pragma comment(lib, "gdal_i.lib") #define BYTE short      //方便数据类型的修改 using namespace std;…
影像读取 并缩放 读取大影像某一部分,并缩放到指定大小,我们有时会用如下代码: #include "gdal.h" #include "gdal_priv.h" #include "gdalwarper.h" void main() { GDALAllRegister(); CPLSetConfigOption("GDAL_FILENAME_IS_UTF8","NO");//support Chinese…
C#下GDAL的使用这里就不多赘述了.參见上一篇博客. 代码中都加了凝视,这里就不再一一叙述了.代码例如以下: class FloodSimulation { #region 类成员变量 public Dataset m_DEMDataSet; //DEM数据集 public Dataset m_FloodSimulatedDataSet; //洪涝淹没范围数据集 public int m_XSize; //数据X方向栅格个数 public int m_YSize; //数据Y方向栅格个数 pu…
环境:VS2010,C#,GDAL1.7 读取影像: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Diagnostics; using System.…
在读取一个bmp图像的时候,我们会将它的大小读取出来,如果还不清楚bmp的文件结构,那就先看一下这篇博客. 看完我将假设你已经明白所表示的意义.那么,对于bfSize, 它的表示数字为 50 00 00 00. 根据PC的显示习惯(其实就是小端存储规则),那么其真实值应该是00 00 00 50. 那么如果现在我们要提取出这个值,我们应该怎么做呢? 首先当然是将值从文件提取出来,这个简单,只需要将0-5的数据读取出来就可以了.假设读取出来的数据是放到一个数组sizeinfo里面的,那么现在siz…
官方网站上写的是: 生成的验证码信息会保存到session中,包含的数据有: array('verify_code'=>'当前验证码的值','verify_time'=>'验证码生成的时间戳') 但是使用 $_SESSION['verify_code'] 就是读取不到,后来var_dump($_SESSION);array(1) { ["d2d977c58444271d9c780187e93f80e5"]=> array(2) { ["verify_code…
电脑需要有USB3.0的接口 我使用的环境为:Ubuntu16.04LTS ROS版本是kinetic 一.usb_cam驱动的安装 1.创建ROS工作空间 mkdir -p myros/src cd myros catkin_make source devel/setup.bash 2.在src目录下载驱动文件 cd src git clone https://github.com/bosch-ros-pkg/usb_cam cd .. catkin_make 二.测试 1.运行节点管理器 r…
from osgeo import gdal import numpy as np path = './data/201912/anl_surf125.2019120100' dataset = gdal.Open(path) number_bands = dataset.RasterCount for i in range(1, number_bands): band = dataset.GetRasterBand(i) data_array = band.ReadAsArray() prin…
原来的解决方案: 现在1.5.x以后取消了location地址 1.5以后解决方案:…
-------------------------------------------------------------------------------------- #include <gdal_priv.h> #include <ogrsf_frmts.h> GDALAllRegister(); OGRDataSource* poDS; const char* pszDriverName = "ESRI Shapefile"; // GDALDrive…
Portable Basemap Server:多数据源多客户端的底图服务器 [poll id=”1″]2014.3.8更新v3.1~在线切片转换为MBTiles时,增加RecreateEmptyCache模式.当你想继续上次未完成的任务或打算合并多个级别/范围的切片时,RecreateEmptyCache模式会非常适合: ~在CustomOnlineMaps.xml中自定义数据源时,增加Multi-Layer模式,比如可将标注和影像两个数据源融合为一个服务.具体用法请参考自带示例: ~修复已知…
GDAL库是一个跨平台的栅格地理数据格式库,包括读取.写入.转换.处理各种栅格数据格式(有些特定的格式对一些操作如写入等不支持).它使用了一个单一的抽象数据模型就支持了大多数的栅格数据.这里有GDAL库支持的格式:http://www.gdal.org/formats_list.html 注:本文在Qt开发环境下使用GDAL库. 在Qt中使用GDAL库时,除了要加gdal_priv.h头文件外,还需要在xxx.pro文件内加上LIBS += -lgdal ,文件用可编辑的文档打开. 使用GDAL…
最近的一个项目需要在电子海图中下载已知水深点,导出点的地理坐标(经纬度).然后在arcgis中打开这些地理坐标输出为shp,利用GDAL读取不同波段的点对应的像元值,从而构建水深和像元值的对应关系. 其实想要根据经纬度得到像元值有两种方法. 1.通过arcpy选择点输出像元值,这个方法简单快捷,依赖于arcgis. 2.通过GDAL读取经纬度(度分秒),转换成小数形式.使用GDAL的CoordinateTransformation方法将经纬度转换成投影坐标,再转换成行列坐标,最后读取像元值.这里…
对于做海洋数据处理的同学,会经常遇到nc格式的文件,nc文件的格式全称是NetCDF,具体的详细解释请查询官网[https://www.unidata.ucar.edu/software/netcdf/docs/index.html],一般从全球大洋数据库里面下载的温盐.风场及云量等数据,基本上是nc文件格式,每一个文件里面包含多个数据集,例如最简单的海面表温数据(Sea surface temperature data),数据范围是全球,空间分辨率为0.25 *0.25(~25km),时间分辨…
0.目的 GDAL库中提供了四五种读取Jpeg2000的驱动,但是各个驱动读取数据的效率各不相同,下面就针对三种读取jpeg2000的效率进行测试. GDAL库中提供的读取Jpeg2000的驱动有下面六个,具体的说明请移步GDAL官网查看.地址为:http://www.gdal.org/formats_list.html. JPEG2000 - Implementation of the JPEG-2000 part 1 JP2ECW – ERDAS JPEG2000 (.jp2) JP2KAK…
序 想要完整全面地学习opencv,仅凭阅读samples的示例源码是不够的.毕竟opencv是一个拥有非常多函数的程序库,所以在每学习一个函数时,芒果觉得有必要记录下来,分享给有需要的同学.于是,就有了这一篇的开始,以后的这个就归为opencv函数学习的系列了,篇幅应该都会比较短. imread函数 imread函数作用 imread函数的作用非常简单,从函数的名称也可以看出来,imread为image read的缩写,即图像读取的意思,.那么imread函数的作用就很明显了,负责读取图像.其…
来源:https://ww2.mathworks.cn/help/matlab/ref/imread.html?searchHighlight=imread&s_tid=doc_srchtitle imread 从图形文件读取图像 全页折叠 语法 A = imread(filename) A = imread(filename,fmt) A = imread(___,idx) A = imread(___,Name,Value) [A,map] = imread(___) [A,map,tran…
APP都会涉及到版本的问题,Android APP的版本信息保存在AndroidManifest.xml文件的顶部.如下图: 有2个属性表示,“android:versionCode”和“android:versionName”,其中versionCode是int类型,是给程序用的,一般版本控制就用这个,versionName是String类型,是给用户看的,比如在APP的关于页面,显示当前版本.新建的工程中versionCode默认是1,versionName默认是1.0. 下面来用程序读取一…