在matlab中进行图像处理,一般使用的都是图像本地坐标,以左上角(1,1)开始.处理完成后,如果要将结果在带地理坐标的遥感影像中显示,或者需要输出成shp文件,就需要涉及到本地坐标和地理坐标的转换,我们可以使用pix2map函数来实现这个功能. clc;clear;close all; [pic, R] = geotiffread('boston.tif'); %读取tif图像 figure(),imshow(pic);% pic即为本地图像,下面对本地图像进行操作 gray=rgb2gray…
clc;close all;clear; road=shaperead('boston_roads.shp'); %读取shape文件 figure, mapshow('boston.tif'); %读取tif遥感影像并显示 axis image manual off; %关闭本地坐标系统 surveyFeetPerMeter = unitsratio('sf','meter'); %将米级单位转换成surveyFeet单位 colorTab='rgbcymkw'; %颜色代码表,不同等级的公路…
最近因为要做遥感影像的滤波处理,经过女神推荐,决定用Timesat,可是该软件3.1版本只适合xp系统以及2011的matlab,后来在官网上找到了最新的3.2版本.支持64位操作系统以及2014的matlab.大家可以直接上官网(http://www.nateko.lu.se/TIMESAT/timesat.asp )注册下载,但是有一个问题是,官网注册的时候,会用到Google公司的rechaptcha验证码系统,因为大天朝的墙太高了,所以是刷不出来的,可以选择挂vpnFQ下载.如果不想FQ…
一.前言 GDAL具有强大的图像读写功能,但是对常用图像处理算法的集成较少,OpenCV恰恰具有较强的图像处理能力,因此有效的结合两者对图像(遥感影像)的处理带来了极大的方便.那么如何实现GDAL与openCV间的数据交换成为影像处理中的关键步骤.接下来我将记录下:1 如何将GDAL读取的影像转化为openCV支持的的MAT格式?2 如何将处理后MAT数据转化为合适的图像格式存储?(PS:本人也是初次使用GDAL和openCV,代码很水...只是记录下自己学的,和大家交流下) 二.GDAL数据到…
一.前言 GDAL具有强大的图像读写功能,但是对常用图像处理算法的集成较少,OpenCV恰恰具有较强的图像处理能力,因此有效的结合两者对图像(遥感影像)的处理带来了极大的方便.那么如何实现GDAL与openCV间的数据交换成为影像处理中的关键步骤.接下来我将记录下:1 如何将GDAL读取的影像转化为openCV支持的的MAT格式?2 如何将处理后MAT数据转化为合适的图像格式存储?(PS:本人也是初次使用GDAL和openCV,代码很水...只是记录下自己学的,和大家交流下) 二.GDAL数据到…
做量化操作的时候经常需要使用到matlab编写策略或者计算多因子,for循环非常慢,自己找了一些matlab中for循环的优化方法,for的部分每处理一个大矩阵都要花费大量的时间,这是不可避免需要遇到的问题~. 方法1:循环多不要紧,要紧的是循环嵌套得太多,要解决这个问题,需要从根本上找原因,用更好的数据结构和算法,从根源上减少对于循环的需求 方法2:将循环次数多的放在里面,循环次数少的放在外面做大循环 方法3:for循环中少用if——else if判断,用switch——case,效率更高 方…
1.基于VC++ Win32+CUDA+OpenGL组合的遥感影像显示 在该组合方案下,初始化时将OpenGL设置为下面两种方式,效果一样 //设置方式1 glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGBA); //设置方式2 glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB); 从遥感影像数据中提取出像素数据,可将其中的R.G.B三通道依次赋值给OpenGL的像素缓冲区对象 (PBO,Pixel Buffer Obje…
最近在把matlab的代码转化到VS2010上. matlab中采用im2double将读入的图像转换为double型,在OpenCV中就需要对图像进行深度的转换. 读入一幅灰度图像,深度为1(8U),在与其他矩阵M做运算事要保证深度是一致的,所以需要转换,如转换到深度为8(64F),需要用到OpenCV中的函数cvConvert. 代码如下: IplImage* src = cvLoadImage("./Image/2/多波段.bmp",CV_LOAD_IMAGE_GRAYSCALE…
工作需要在MATLAB中绘制质点轨迹并保存成GIF以便展示. 绘制质点轨迹动图可用comet和comet3命令,使用例子如下: t = 0:.01:2*pi;x = cos(2*t).*(cos(t).^2);y = sin(2*t).*(sin(t).^2);z = t;comet(x,y,0.1); %绘制二维%comet3(x,y,z,0.1); %绘制三维 这有一个问题在于comet或comet3无法控制绘制的动画的速度,为了实现这一点,一个可行的方法是重写comet和comet3,在每…
eps(a)是|a|与大于|a|的最小的浮点数之间的距离,距离越小表示精度越高.默认a=1: 这里直接在matlab中输入:eps == eps(1)(true). 我们知道浮点数其实是离散的,有限的,而且间隔是不均匀的.我们可以说一个数旁边的数是什么, 而它们之间的距离就反应了其精度.越靠近0,数和数之间就越密集,精度就越高. 下面引用百度知道中 greatdju 的详细回答: 首先,eps不是matlab所能表示的最小的正数.可以试试eps和eps/2,如果eps真的是最小的正数, 那么ep…