最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python讀取與寫入tif圖片的完整信息(過程詳解)

 更新時間:2023年05月01日 08:54:06   作者:兩只蠟筆的小新  
這篇文章主要介紹了python讀取與寫入tif圖片的完整信息,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

python讀取與寫入tif圖片的完整信息

一、導入gdal包

在anconda環(huán)境下:

conda install gdal

在其他環(huán)境下,去這個網站下載gdal包,直接使用pip install gdal是不行的

 注意:

對于liunx用戶,建議使用conda安裝,對于win用戶兩者都可以。

使用方式一:from osgeo import gdal

使用方式二: import gdal 

讀取if

#Tif文件讀取
def ReadTifImg(filename):
    '''功能:用于讀取TIF格式的遙感圖像,
       返回值:im_proj : 地圖投影信息,一般在剪裁,拼合圖像的時候不修改這部分信息
             im_geotrans : 仿射矩陣,里面存放了地圖絕對的地理信息位置
             im_data:通道順序位 [channel,width,height]'''
    dataset = gdal.Open(filename)  # 打開文件
    im_width = dataset.RasterXSize  # 柵格矩陣的列數
    im_height = dataset.RasterYSize  # 柵格矩陣的行數
    im_geotrans = dataset.GetGeoTransform()  # 仿射矩陣
    im_proj = dataset.GetProjection()  # 地圖投影信息
    # GeoTransform[0]  橫向 水平 [0,0.5,0,0,0,-0.5]
    # GeoTransform[3]  左上角位置
    # GeoTransform[1]是像元寬度 正值 相加
    # GeoTransform[5]是像元高度 負值 相減
    # 如果影像是指北的,GeoTransform[2]和GeoTransform[4]這兩個參數的值為0。
    im_data = dataset.ReadAsArray(0, 0, im_width, im_height)  # 將數據寫成數組,對應柵格矩陣
    del dataset
    return im_proj, im_geotrans, im_data

寫入tif

 
#Tif文件寫入
def WriteTifImg(filename, im_proj, im_geotrans, im_data, datatype=None):
    '''功能:用于寫TIF格式的遙感圖像,同時兼容一個通道 和 三個通道
       返回值:im_proj : 地圖投影信息,保持與輸入圖像相同
             im_geotrans : 仿射矩陣,計算當前圖像塊的仿射信息
             im_data:通道順序位 [channel,height,width], 當前圖像塊的像素矩陣,
             datatype:指定當前圖像數據的數據類型,默認和輸入的im_data類型相同'''
    # gdal數據類型包括
    # gdal.GDT_Byte,
    # gdal .GDT_UInt16, gdal.GDT_Int16, gdal.GDT_UInt32, gdal.GDT_Int32,
    # gdal.GDT_Float32, gdal.GDT_Float64
    # 判斷柵格數據的數據類型
    if datatype is None:  # im_data.dtype.name數據格式
        if 'int8' in im_data.dtype.name:
            datatype = gdal.GDT_Byte
        elif 'int16' in im_data.dtype.name:
            datatype = gdal.GDT_UInt16
        else:
            datatype = gdal.GDT_Float32
    # 判讀數組維數
    if len(im_data.shape) == 3:
        im_bands, im_height, im_width = im_data.shape
    else:
        im_bands, (im_height, im_width) = 1, im_data.shape
        # 創(chuàng)建文件
    driver = gdal.GetDriverByName("GTiff")  # 數據類型必須有,因為要計算需要多大內存空間
    dataset = driver.Create(filename, im_width, im_height, im_bands, datatype)
    dataset.SetGeoTransform(im_geotrans)  # 寫入仿射變換參數
    dataset.SetProjection(im_proj)  # 寫入投影
    if im_bands == 1:
        dataset.GetRasterBand(1).WriteArray(im_data)  # 寫入數組數據
    else:
        for i in range(im_bands):  # 按波段寫入
            dataset.GetRasterBand(i + 1).WriteArray(im_data[i])
    del dataset

補充:用python讀取tif格式圖像,opencv讀取

import cv2
img = cv2.imread("11.tif",1)
#第二個參數是通道數和位深的參數,
#IMREAD_UNCHANGED = -1#不進行轉化,比如保存為了16位的圖片,讀取出來仍然為16位。
#IMREAD_GRAYSCALE = 0#進行轉化為灰度圖,比如保存為了16位的圖片,讀取出來為8位,類型為CV_8UC1。
#IMREAD_COLOR = 1#進行轉化為RGB三通道圖像,圖像深度轉為8位
#IMREAD_ANYDEPTH = 2#保持圖像深度不變,進行轉化為灰度圖。
#IMREAD_ANYCOLOR = 4#若圖像通道數小于等于3,則保持原通道數不變;若通道數大于3則只取取前三個通道。圖像深度轉為8位
print (img)
print (img.shape)
print (img.dtype)
print (img.min())
print (img.max())
#創(chuàng)建窗口并顯示圖像
cv2.namedWindow("Image")
cv2.imshow("Image",img)
cv2.waitKey(0)
#釋放窗口
cv2.destroyAllWindows()

到此這篇關于python讀取與寫入tif圖片的完整信息的文章就介紹到這了,更多相關python讀取與寫入tif內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python udp如何實現同時收發(fā)信息

    python udp如何實現同時收發(fā)信息

    這篇文章主要介紹了python udp如何實現同時收發(fā)信息,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 基于python實現matlab filter函數過程詳解

    基于python實現matlab filter函數過程詳解

    這篇文章主要介紹了基于python實現matlab filter函數過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • python實現猜數字游戲(無重復數字)示例分享

    python實現猜數字游戲(無重復數字)示例分享

    這篇文章主要介紹了python實現猜數字游戲(無重復數字)示例,需要的朋友可以參考下
    2014-03-03
  • Python使用numpy產生正態(tài)分布隨機數的向量或矩陣操作示例

    Python使用numpy產生正態(tài)分布隨機數的向量或矩陣操作示例

    這篇文章主要介紹了Python使用numpy產生正態(tài)分布隨機數的向量或矩陣操作,簡單描述了正態(tài)分布的概念并結合實例形式分析了Python使用numpy模塊結合matplotlib繪制正態(tài)分布曲線圖相關操作技巧,需要的朋友可以參考下
    2018-08-08
  • 基于python實現坦克大戰(zhàn)游戲

    基于python實現坦克大戰(zhàn)游戲

    這篇文章主要為大家詳細介紹了基于python實現坦克大戰(zhàn)游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • 利用Python生成隨機驗證碼詳解

    利用Python生成隨機驗證碼詳解

    怎么用python繞驗證碼是個令人頭禿的事情,這篇文章將為大家詳細 介紹如何利用Python生成隨機的驗證碼,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起試試
    2022-01-01
  • Python結合OCR實現從掃描件PDF中提取文本

    Python結合OCR實現從掃描件PDF中提取文本

    掃描件 PDF 本質是 “圖像集合”,無法直接復制或編輯文本,要提取其中的內容,需借助OCR,下面我們就來看看如何通過 Python 結合 OCR 技術實現從掃描件 PDF 中提取文本吧
    2025-10-10
  • Python中的自定義函數學習筆記

    Python中的自定義函數學習筆記

    這篇文章主要介紹了Python中的自定義函數學習筆記,本文講解了定義函數、callable函數、help函數等內容,需要的朋友可以參考下
    2014-09-09
  • Python?dateutil庫簡化日期時間處理利器使用場景實踐

    Python?dateutil庫簡化日期時間處理利器使用場景實踐

    在Python中,處理日期和時間是常見的任務之一,dateutil庫是Python標準庫中datetime模塊的擴展,提供了許多方便的工具和函數,簡化了日期和時間的操作
    2023-12-12
  • python畫蝴蝶曲線圖的實例

    python畫蝴蝶曲線圖的實例

    今天小編就為大家分享一篇python畫蝴蝶曲線圖的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11

最新評論

淮滨县| 武平县| 岑巩县| 西乡县| 揭东县| 合山市| 浏阳市| 海原县| 北宁市| 历史| 潮州市| 如皋市| 琼中| 镇康县| 巩留县| 顺平县| 申扎县| 鄂温| 田阳县| 彭水| 饶河县| 平武县| 苏尼特右旗| 民勤县| 杭锦后旗| 陆河县| 东宁县| 沈丘县| 新密市| 邵阳县| 林甸县| 米林县| 富民县| 和平县| 项城市| 涞水县| 阳泉市| 牟定县| 肃宁县| 绵阳市| 商洛市|