精华内容
下载资源
问答
  • ArcGIS栅格图像导出为TIF格式

    万次阅读 多人点赞 2019-04-21 21:53:43
    右键->数据->导出数据 默认的格式是“文件地理数据库”,是因为“位置”选的是一个.gdb后戳的文件。 点击之后,将位置改为一个文件夹 可以看到格式变为了TIF,点保存就可以导出了 ...

    第一步:右键
    右键->数据->导出数据

    在这里插入图片描述
    默认的格式是“文件地理数据库”,是因为“位置”选的是一个.gdb后戳的文件。

    点击在这里插入图片描述之后,将位置改为一个文件夹

    在这里插入图片描述
    可以看到格式变为了TIF,点保存就可以导出了

    展开全文
  • 图像栅格化矢量化并转换为AUTO CAD的文件格式的程序
  • 从OCAD地图文件创建栅格图像和图块。 磁贴适合与或。 正在安装 要使用命令行工具: npm install -g ocad2tiles 用作项目中库: npm install ocad2tiles 命令行用法 创建瓷砖 这将创建一组适用于诸如Leaflet或...
  • Gdal_translate 可以将多种不同类型的栅格文件(DEM或图片JPG,JP2,PNG,TIF)进行格式转换如INT16 转float32 Gdal_translate /H可以查询使用参数 其它一些Gdal工具如: Gdaldem Gdaltransform Gdalwarp 另外,...
  • MAPINFO下的栅格图像(raster image)配准

    千次阅读 2009-11-13 08:56:00
    栅格图像(raster image)配准1. 打开正在编辑的文件.2. 文件菜单的打开,选择栅格图象格式(raster image),选择jpg图像文件.3. 出现mapinfo对话窗,其显示有两个按钮,选择配准图像按钮(register).4.在预览的jpg...

     

    栅格图像(raster image)配准

    1. 打开正在编辑的文件.

    2. 文件菜单的打开,选择栅格图象格式(raster image),选择jpg图像文件.

    3. 出现mapinfo对话窗,其显示有两个按钮,选择配准图像按钮(register).

    4.在预览的jpg图像的左上角点击,然后直接确认弹出的对话框。点击添加按钮,点击右上角,直接确认弹出窗口。添加,其余两角点。

    5. 在mapinfo窗口的对话窗上选中其中一个配准点,不要关闭该对话框。选mapinf主窗口的表 (table)菜单的raster子菜单的从地图上选定控制点。依次完成其它点的定位。

    展开全文
  • 地理信息系统和遥感影像处理和应用过程中,栅格影像都包含有各种地理信息,而一般 ...简单介绍了1rIFF图像文件结构以及对地理数据存储方式,文最后介绍了实现GeoTIFF图像文件的读写关键步骤
  • ENVI栅格文件储存图像原始的DN(Digital Number)值记录图像的光谱信息,不能轻易更改。在窗口中显示的一般是经过拉伸等增强处理的LUT上的灰度值,在保存文件时,就有不同的方式。1.主菜单界面主菜单->File->...

    ENVI栅格文件储存

        图像原始的DNDigital Number)值记录图像的光谱信息,不能轻易更改。在窗口中显示的一般是经过拉伸等增强处理的LUT上的灰度值,在保存文件时,就有不同的方式。

    1.           主菜单界面

    主菜单->File->Save File As,将图像按照需要的格式进行存储,保存的为原始数据,没有拉伸等增强处理。

    2.           主图像窗口

    主菜单->File->Save Images As,将图像按照需要的格式进行存储,存储的图像是显示的图像样式。

    主菜单->File->Save Zoom As,将Zoom窗口显示的图像按照需要的格式进行存储存储的图像是显示的图像样式。

    这两种方式保存的都是拉伸之后的像元值。


    转载于:https://www.cnblogs.com/suncf/p/4090583.html

    展开全文
  • 用于加载GIS图像的标准库是地理数据抽象库(GDAL)。在此示例中,我们将展示使用本机OpenCV函数加载GIS栅格格式的技术。此外,我们将展示一些示例,说明OpenCV如何将这些数据用于新颖有趣的目的。

    使用GDAL读取地理空间栅格文件

    地理空间栅格数据是地理信息系统和摄影测量学中经常使用的产品。栅格数据通常可以表示影像和数字高程模型(DEM)。用于加载GIS图像的标准库是地理数据抽象库(GDAL)。在此示例中,我们将展示使用本机OpenCV函数加载GIS栅格格式的技术。此外,我们将展示一些示例,说明OpenCV如何将这些数据用于新颖有趣的目的。

    目标

    本教程的主要目标:
    如何使用OpenCV imread加载卫星图像。
    如何使用OpenCV imread加载SRTM数字高程模型
    给定图像和DEM的角坐标,将高程数据与图像相关联以找到每个像素的高程。
    显示一个简单易行的地形热图示例。
    展示DEM数据与正射校正图像结合使用的基本方法。
    为了实现这些目标,以下代码将数字高程模型以及旧金山的GeoTiff图像作为输入。处理图像和DEM数据,并生成图像的地形热图以及城市标签区域,如果海湾的水位上升10、50和100米,这些区域将受到影响。

    代码

    #include "opencv2/core.hpp"
    #include "opencv2/imgproc.hpp"
    #include "opencv2/highgui.hpp"
    // C++ Standard Libraries
    #include <cmath>
    #include <iostream>
    #include <stdexcept>
    #include <vector>
    using namespace std;
    // define the corner points
    //    Note that GDAL library can natively determine this
    cv::Point2d tl( -122.441017, 37.815664 );
    cv::Point2d tr( -122.370919, 37.815311 );
    cv::Point2d bl( -122.441533, 37.747167 );
    cv::Point2d br( -122.3715,   37.746814 );
    // determine dem corners
    cv::Point2d dem_bl( -122.0, 38);
    cv::Point2d dem_tr( -123.0, 37);
    // range of the heat map colors
    std::vector<std::pair<cv::Vec3b,double> > color_range;
    // List of all function prototypes
    cv::Point2d lerp( const cv::Point2d&, const cv::Point2d&, const double& );
    cv::Vec3b get_dem_color( const double& );
    cv::Point2d world2dem( const cv::Point2d&, const cv::Size&);
    cv::Point2d pixel2world( const int&, const int&, const cv::Size& );
    void add_color( cv::Vec3b& pix, const uchar& b, const uchar& g, const uchar& r );
    /*
     * Linear Interpolation
     * p1 - Point 1
     * p2 - Point 2
     * t  - Ratio from Point 1 to Point 2
    */
    cv::Point2d lerp( cv::Point2d const& p1, cv::Point2d const& p2, const double& t ){
        return cv::Point2d( ((1-t)*p1.x) + (t*p2.x),
                            ((1-t)*p1.y) + (t*p2.y));
    }
    /*
     * Interpolate Colors
    */
    template <typename DATATYPE, int N>
    cv::Vec<DATATYPE,N> lerp( cv::Vec<DATATYPE,N> const& minColor,
                              cv::Vec<DATATYPE,N> const& maxColor,
                              double const& t ){
        cv::Vec<DATATYPE,N> output;
        for( int i=0; i<N; i++ ){
            output[i] = (uchar)(((1-t)*minColor[i]) + (t * maxColor[i]));
        }
        return output;
    }
    /*
     * Compute the dem color
    */
    cv::Vec3b get_dem_color( const double& elevation ){
        // if the elevation is below the minimum, return the minimum
        if( elevation < color_range[0].second ){
            return color_range[0].first;
        }
        // if the elevation is above the maximum, return the maximum
        if( elevation > color_range.back().second ){
            return color_range.back().first;
        }
        // otherwise, find the proper starting index
        int idx=0;
        double t = 0;
        for( int x=0; x<(int)(color_range.size()-1); x++ ){
            // if the current elevation is below the next item, then use the current
            // two colors as our range
            if( elevation < color_range[x+1].second ){
                idx=x;
                t = (color_range[x+1].second - elevation)/
                    (color_range[x+1].second - color_range[x].second);
                break;
            }
        }
        // interpolate the color
        return lerp( color_range[idx].first, color_range[idx+1].first, t);
    }
    /*
     * Given a pixel coordinate and the size of the input image, compute the pixel location
     * on the DEM image.
    */
    cv::Point2d world2dem( cv::Point2d const& coordinate, const cv::Size& dem_size   ){
        // relate this to the dem points
        // ASSUMING THAT DEM DATA IS ORTHORECTIFIED
        double demRatioX = ((dem_tr.x - coordinate.x)/(dem_tr.x - dem_bl.x));
        double demRatioY = 1-((dem_tr.y - coordinate.y)/(dem_tr.y - dem_bl.y));
        cv::Point2d output;
        output.x = demRatioX * dem_size.width;
        output.y = demRatioY * dem_size.height;
        return output;
    }
    /*
     * Convert a pixel coordinate to world coordinates
    */
    cv::Point2d pixel2world( const int& x, const int& y, const cv::Size& size ){
        // compute the ratio of the pixel location to its dimension
        double rx = (double)x / size.width;
        double ry = (double)y / size.height;
        // compute LERP of each coordinate
        cv::Point2d rightSide = lerp(tr, br, ry);
        cv::Point2d leftSide  = lerp(tl, bl, ry);
        // compute the actual Lat/Lon coordinate of the interpolated coordinate
        return lerp( leftSide, rightSide, rx );
    }
    /*
     * Add color to a specific pixel color value
    */
    void add_color( cv::Vec3b& pix, const uchar& b, const uchar& g, const uchar& r ){
        if( pix[0] + b < 255 && pix[0] + b >= 0 ){ pix[0] += b; }
        if( pix[1] + g < 255 && pix[1] + g >= 0 ){ pix[1] += g; }
        if( pix[2] + r < 255 && pix[2] + r >= 0 ){ pix[2] += r; }
    }
    /*
     * Main Function
    */
    int main( int argc, char* argv[] ){
        /*
         * Check input arguments
        */
        if( argc < 3 ){
            cout << "usage: " << argv[0] << " <image_name> <dem_model_name>" << endl;
            return -1;
        }
        // load the image (note that we don't have the projection information.  You will
        // need to load that yourself or use the full GDAL driver.  The values are pre-defined
        // at the top of this file
        cv::Mat image = cv::imread(argv[1], cv::IMREAD_LOAD_GDAL | cv::IMREAD_COLOR );
        // load the dem model
        cv::Mat dem = cv::imread(argv[2], cv::IMREAD_LOAD_GDAL | cv::IMREAD_ANYDEPTH );
        // create our output products
        cv::Mat output_dem(   image.size(), CV_8UC3 );
        cv::Mat output_dem_flood(   image.size(), CV_8UC3 );
        // for sanity sake, make sure GDAL Loads it as a signed short
        if( dem.type() != CV_16SC1 ){ throw std::runtime_error("DEM image type must be CV_16SC1"); }
        // define the color range to create our output DEM heat map
        //  Pair format ( Color, elevation );  Push from low to high
        //  Note:  This would be perfect for a configuration file, but is here for a working demo.
        color_range.push_back( std::pair<cv::Vec3b,double>(cv::Vec3b( 188, 154,  46),   -1));
        color_range.push_back( std::pair<cv::Vec3b,double>(cv::Vec3b( 110, 220, 110), 0.25));
        color_range.push_back( std::pair<cv::Vec3b,double>(cv::Vec3b( 150, 250, 230),   20));
        color_range.push_back( std::pair<cv::Vec3b,double>(cv::Vec3b( 160, 220, 200),   75));
        color_range.push_back( std::pair<cv::Vec3b,double>(cv::Vec3b( 220, 190, 170),  100));
        color_range.push_back( std::pair<cv::Vec3b,double>(cv::Vec3b( 250, 180, 140),  200));
        // define a minimum elevation
        double minElevation = -10;
        // iterate over each pixel in the image, computing the dem point
        for( int y=0; y<image.rows; y++ ){
        for( int x=0; x<image.cols; x++ ){
            // convert the pixel coordinate to lat/lon coordinates
            cv::Point2d coordinate = pixel2world( x, y, image.size() );
            // compute the dem image pixel coordinate from lat/lon
            cv::Point2d dem_coordinate = world2dem( coordinate, dem.size() );
            // extract the elevation
            double dz;
            if( dem_coordinate.x >=    0    && dem_coordinate.y >=    0     &&
                dem_coordinate.x < dem.cols && dem_coordinate.y < dem.rows ){
                dz = dem.at<short>(dem_coordinate);
            }else{
                dz = minElevation;
            }
            // write the pixel value to the file
            output_dem_flood.at<cv::Vec3b>(y,x) = image.at<cv::Vec3b>(y,x);
            // compute the color for the heat map output
            cv::Vec3b actualColor = get_dem_color(dz);
            output_dem.at<cv::Vec3b>(y,x) = actualColor;
            // show effect of a 10 meter increase in ocean levels
            if( dz < 10 ){
                add_color( output_dem_flood.at<cv::Vec3b>(y,x), 90, 0, 0 );
            }
            // show effect of a 50 meter increase in ocean levels
            else if( dz < 50 ){
                add_color( output_dem_flood.at<cv::Vec3b>(y,x), 0, 90, 0 );
            }
            // show effect of a 100 meter increase in ocean levels
            else if( dz < 100 ){
                add_color( output_dem_flood.at<cv::Vec3b>(y,x), 0, 0, 90 );
            }
        }}
        // print our heat map
        cv::imwrite( "heat-map.jpg"   ,  output_dem );
        // print the flooding effect image
        cv::imwrite( "flooded.jpg",  output_dem_flood);
        return 0;
    }
    

    如何使用GDAL读取栅格数据

    本演示使用默认的OpenCV读取功能。主要区别在于,为了强制GDAL加载图像,必须使用适当的标志。

     cv::Mat image = cv::imread(argv[1], cv::IMREAD_LOAD_GDAL | cv::IMREAD_COLOR );
    

    加载数字高程模型时,每个像素的实际数值是必不可少的,不能缩放或截断。例如,对于图像数据,用值1表示为双精度的像素与用值255表示为无符号字符的像素具有相同的外观。对于terrain数据,像素值表示以米为单位的高程。为了确保OpenCV保留本机值,请在GDAL标志与ANYDEPTH标志一起读取时使用。

        // load the dem model
        cv::Mat dem = cv::imread(argv[2], cv::IMREAD_LOAD_GDAL | cv::IMREAD_ANYDEPTH );
    

    如果您事先知道要加载的DEM模型的类型,那么使用断言或其他机制测试Mat :: type()或Mat :: depth()可能是一个安全的选择。NASA或DOD规范文档可以提供各种高程模型的输入类型。SRTM和DTED这两种主要类型都是带符号的短裤。

    笔记

    通常应避免纬度/经度(地理)坐标

    地理坐标系是球坐标系,这意味着将其与笛卡尔数学一起使用在技术上是不正确的。该演示使用它们来提高可读性,并且足够准确以阐明要点。更好的坐标系将是“通用横轴墨卡托”。

    寻找角坐标

    查找图像的角坐标的一种简单方法是使用命令行工具gdalinfo。对于经过正射校正并包含投影信息的图像,可以使用USGS EarthExplorer。

    \f$> gdalinfo N37W123.hgt
       Driver: SRTMHGT/SRTMHGT File Format
       Files: N37W123.hgt
       Size is 3601, 3601
       Coordinate System is:
       GEOGCS["WGS 84",
       DATUM["WGS_1984",
       ... more output ...
       Corner Coordinates:
       Upper Left  (-123.0001389,  38.0001389) (123d 0' 0.50"W, 38d 0' 0.50"N)
       Lower Left  (-123.0001389,  36.9998611) (123d 0' 0.50"W, 36d59'59.50"N)
       Upper Right (-121.9998611,  38.0001389) (121d59'59.50"W, 38d 0' 0.50"N)
       Lower Right (-121.9998611,  36.9998611) (121d59'59.50"W, 36d59'59.50"N)
       Center      (-122.5000000,  37.5000000) (122d30' 0.00"W, 37d30' 0.00"N)
        ... more output ...
    

    结果

    下面是程序的输出。使用第一个图像作为输入。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 这是,该服务提供SVG和栅格格式的简洁,一致且清晰徽章,可以轻松地包含在GitHub自述文件或任何其他网页中。 该服务支持数十种持续集成服务,程序包注册表,发行版,应用商店,社交网络,代码覆盖率服务和代码分析...
  • rrd,img和ige格式的图像文件关系简介

    千次阅读 2010-12-16 15:37:00
    ERDAS可以打开2GB以上的文件,只不过不是通常的文件格式,如TIFF等.如果需要打开大于2GB的文件需要把文件转换成IMG格式,就可以了,这时候,ERDAS自动生成三个文件,分别是IMG、IGE和RRD文件,其中的IMG文件就成了索引...
  • 1.2)将两个叠加图层输出成tif (或其他栅格图像)。 二、步骤: 2.1)准备数据 :①栅格底图tif 和其坐标文件信息 .tfw , tfw相关信息可以查看 https://blog.csdn.net/u014136513/article/details/50580619 ...
  • 利用Raster Caclutaor功能我们也可以把某个栅格图像与某一个矢量文件的相重叠部分单独切出来。两者步骤基本一致,都是需要把矢量文件先转成栅格格式,然后利用进行象元间加减乘除操作。 步骤: ...
  • BMP文件格式解析

    2019-11-08 17:16:13
    BMP文件格式解析 作者:水木子 一、图像概述 1.1 位图 位图(Bitmap),又称栅格图(英语:Raster graphics)或点阵图,是使用像素阵列来表示的图像。 ----维...
  • 因为做任务时发现opencv只是支持部分Tiff文件格式,对于GeoTiff这样带有投影和坐标信息遥感栅格影像总是读不出来,输出时这些信息也会消失。搜网上解决方法大多都是基于早期IplImage与CvMat数据结构来表示图像...
  • 学习栅格影像

    2018-07-01 10:29:32
    栅格影像存储在图像文件,有不同格式(对比图形文件格式)本质上,栅格数据与矢量数据有很大不同。栅格影像上,并未区分各个不同要素,如房屋、道路、高程点等。栅格图像是一个单一要素。我们在栅格数据上...
  • ACSII格式的图象文件特征值重采样计算与转换 ...重采样通过不同大小的移动窗口来实现,若重采样的窗口大小为N*N,则原栅格图像的N*N个栅格合并为一个新的大栅格,每一个大栅格值的含义为用户选择的特征值。
  • 像.bmp图像就是最典型的栅格图形,.jpeg等也属于栅格图形。CAD图形就是矢量图。 矢量图像,也称为面向对象的图像或绘图图像,在数学上定义为一系列由线连接点。矢量文件图形元素称为对象。每个对象都是一个.....
  • 因此,可能需要将AI文件转换为不同的栅格图像和其他文件格式。 为了解决此问题,可以在Java应用程序中轻松快速地将AI文件转换为PSD,PNG,JPEG或PDF文件。让我们浏览以下主题以更好地理解它: 在Java中将AI转换为...
  • 源代码是按照Windows图元文件格式规范从头开始用纯.NET编写。 技术信息 名称:窗口图元文件格式(WMF) 文件扩展名: .wmf,.emf MIME类型: image / x-wmf,image / x-emf 分类:矢量/光栅图像 标识符: D7 ...
  • 在位图中,其表示方式是将一幅图像分割成栅格栅格的每一点称为像素,每一个像素具有自己RGB值,以此构成图形。所以从本质上讲,一幅位图不过是由一系列像素点构成点阵罢了。  位图文件支持4位RLE(行程长度...
  • 使用GDAL创建Erdas格式的金字塔

    万次阅读 热门讨论 2011-01-10 20:21:00
    在使用Erdas或者ArcGIS打开栅格图像的时候,会创建一个后缀名为rrd的金字塔文件,用于快速显示图像。那么在使用GDAL编写自己的图像算法后,像快速的在Erdas或者ArcGIS中显示,就需要自己创建rrd格式的金字塔文件,...
  • Python/对图像进行处理

    千次阅读 2019-03-03 15:36:43
    图片文件格式 RAW格式 BMP格式 PCX格式 TIFF格式 GIF格式 JPEG格式 TGA格式 EXIF格式 FPX格式 SVG格式 PSD格式 CDR格式 PCD格式 DXF格式 UFO格式 EPS格式 PNG格式 图片分类 栅格(位图)(放大会失...
  • 栅格数据说明

    2016-11-11 09:55:03
     标记图像文件格式 (TIFF)(支持 GeoTIFF 标记),广泛应用于桌面出版领域。它可用作某些扫描仪和图形艺术包界面。TIFF 支持黑白、灰度、伪彩色以及真彩色图像,所有这些图像都可以以压缩或者解压缩格式存储。 ...
  • 单独ENVI头文本文件提供关于图像尺寸、嵌入头文件(若存在)、数据格式及其它相关信息。所需信息通过交互式输入,或自动地用"文件吸取"创建,并且以后可以编辑修改。可以在ENVI之外使用一个文本编辑器生成一个...
  • Gis中常见数据格式

    2020-09-07 10:44:21
    标记图像文件格式bai(TIFF)(支持GeoTIFF标记),广泛用于du桌面发布,可以用作某些扫描zhi仪和图形艺术包接口。 TIFF支持黑白,灰度,伪彩色和真彩色图像,所有这些都可以以压缩或解压缩格式存储。 (2)tif....
  • # -*- coding: utf-8 -*- import os import numpy from osgeo import gdal class GRID: # 读图像文件 def read_img(self, filename): ... im_width = dataset.RasterXSize # 栅格矩阵列数 im_height = dataset.R
  • 一些用于从数字栅格地图创建和处理切片... ozf_decoder.py -- 将 .ozf2 或 .ozfx3 文件转换为 .tiff(平铺格式) hdr_pcx_merge.py -- 将 hdr-pcx 图表图像转换为 .png 维基:评论 tiles-opt.py -opt.py——使用 pngn
  • 将 svg 转换为 Phantom.js 支持任何图像文件格式的多种大小。 非常适合基于一个 svg 创建您需要所有(phonegap)应用程序图标。 vector2raster基于最新 [PhantomJS][] 技术构建,可使用无头 WebKit 渲染 SVG...
  • 使用LayerInfo object 在map中添加...对于一副栅格图像,在Mapinfo里配准后就会发现在原来.bmp或者.jpg文件的基础上会新生成一个同名.tab文件。 mapX支持栅格格式还是比较多,包括: l TIFF (*.tif)

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 150
精华内容 60
关键字:

栅格图像的文件格式