首先pip安装scikit-image包,或者直接使用pycharm安装
scikit-image包含一下相关子模块,这里我们使用io模块实现格式转换,输入的geotiff具有很多个波段。
子模块名称 | 主要实现功能 |
---|---|
io | 读取、保存和显示图片或视频 |
data | 提供一些测试图片和样本数据 |
color | 颜色空间变换 |
filters | 图像增强、边缘检测、排序滤波器、自动阈值等 |
draw | 操作于numpy数组上的基本图形绘制,包括线条、矩形、圆和文本等 |
transform | 几何变换或其它变换,如旋转、拉伸和拉东变换等 |
morphology | 形态学操作,如开闭运算、骨架提取等 |
exposure | 图片强度调整,如亮度调整、直方图均衡等 |
feature | 特征检测与提取等 |
measure | 图像属性的测量,如相似性或等高线等 |
segmentation | 图像分割 |
restoration | 图像恢复 |
util | 通用函数 |
转换代码
代码语言:javascript复制 #-*- coding: utf-8 -*-
import scipy.io as sio
import skimage.io
import imagecodecs
# to open a tiff file for reading:
inputgeotiff_path=r"D:gt00cls00.tif" #geotiff
outputgeotiff_path=r"D:gt00cls00.mat" #tiff
#图像读取
imggt=skimage.io.imread(inputgeotiff_path)
sio.savemat(outputgeotiff_path, {'imggt':imggt})
print('success')
运行错误记录:scikit-image ValueError: <COMPRESSION.LZW: 5> requires the 'imagecodecs' package
在使用scikit-image包对geotiff数据进行格式转换(tiff转mat)提示以下问题:
代码语言:javascript复制ValueError: <COMPRESSION.LZW: 5> requires the 'imagecodecs' package
开始以为这个问题是由于输入图像是geotiff格式不支持的原因,查阅了相关资料,应该是支持的,也试用过其他三通道的tif格式的小图片,可以正常运行。
解决办法:根据提示安装'imagecodecs' package,重新运行,运行成功了。
安装过程中,网络总是不稳定,最后使用手机移动网络连接实现安装的。
其他说明
这里的imggt是mat文件的key值,需要注意记录一下,后期读取的是都是需要用到的,最好设置的和文件名称一致,方便记忆。
代码语言:javascript复制sio.savemat(outputgeotiff_path, {'imggt':imggt})