遥感图像处理的课程实习结束了,用博客来记录下自己的图像处理的过程,用于自己的学习成长使用。
刚开始实习的时候觉得图像处理好难啊,不过走下来了,就感觉还好,当然是有前面学长的代码做入门学习。遥感图像处理的课程都是很基础的算法,例如,图像的各种显示(均衡化显示,拉伸显示,反转显示,浮雕显示,放大,缩小显示等等,前面列出来的是实习里实现了的)
个人觉得图像处理,需要处理的有:图像的显示,图像的算法处理,图像的重写。图像的显示和图像的重写是是基础的技术问题。而图像处理的算法是核心的东西(个人从遥感处理的角度来讲,对于不同的岗位,不同的工作来说,侧重点也就不同)。我是用MFC实现的,所以,我把每一个图像处理的算法都分开写在了对话框里的按钮里。我们学习的对于图像处理的算法,都是针对数值来进行操作的,我们平常接触的图片是数字的,遥感影像也是数字的。我前面所说的读写也是对于影像数值的读写。
对于普通的图片(平常非遥感专业的童鞋接触的图片都是些RGB图片,用opencv来进行处理就完全ok,至于遥感影像,它有不止一个波段还有一些地理位置等信息,用GDAL处理会比较好些,GDAL的处理图像的效率要高于opencv,但是opencv的算法要多于GDAL,仅为个人理解)
影像的显示,首先,需要将影像读入到内存中,然后在使用display函数进行显示,将影像读入到内存中使用的是GDAL中的RasterIO函数。
上面的是GDAL中RasterIO函数的使用,每个位置参数的含义可以通过搜索或者尝试来查看其结果,pafScanblock1为开辟的内存,开辟使用的也是GDAL中的函数,如下面的代码所示,nImgSize代表图像的图像的X,Y的大小,开辟的类型为float类型。