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

Python模塊_PyLibTiff讀取tif文件的實(shí)例

 更新時(shí)間:2020年01月13日 11:47:33   作者:ninesun11  
今天小編就為大家分享一篇Python模塊_PyLibTiff讀取tif文件的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

Usage example (libtiff wrapper)

from libtiff import TIFF
# to open a tiff file for reading:
tif = TIFF.open('filename.tif', mode='r')
# to read an image in the currect TIFF directory and return it as numpy array:
image = tif.read_image()
# to read all images in a TIFF file:
for image in tif.iter_images(): # do stuff with image
# to open a tiff file for writing:
tif = TIFF.open('filename.tif', mode='w')
# to write a image to tiff file
tif.write_image(image)

Usage example (pure Python module)

from libtiff import TIFFfile, TIFFimage
# to open a tiff file for reading
tif = TIFFfile('filename.tif')
# to return memmaps of images and sample names (eg channel names, SamplesPerPixel>=1)
samples, sample_names = tiff.get_samples()
# to create a tiff structure from image data
tiff = TIFFimage(data, description='')
# to write tiff structure to file
tiff.write_file('filename.tif', compression='none') # or 'lzw'
del tiff # flushes data to disk
from libtiff import TIFF 
from scipy import misc 
 
##tiff文件解析成圖像序列 
##tiff_image_name: tiff文件名; 
##out_folder:保存圖像序列的文件夾 
##out_type:保存圖像的類型,如.jpg、.png、.bmp等 
def tiff_to_image_array(tiff_image_name, out_folder, out_type):  
      
  tif = TIFF.open(tiff_image_name, mode = "r") 
  idx = 0 
  for im in list(tif.iter_images()): 
    # 
    im_name = out_folder + str(idx) + out_type 
    misc.imsave(im_name, im) 
    print im_name, 'successfully saved!!!' 
    idx = idx + 1 
  return 
 
##圖像序列保存成tiff文件 
##image_dir:圖像序列所在文件夾 
##file_name:要保存的tiff文件名 
##image_type:圖像序列的類型 
##image_num:要保存的圖像數(shù)目 
def image_array_to_tiff(image_dir, file_name, image_type, image_num): 
 
  out_tiff = TIFF.open(file_name, mode = 'w') 
   
  #這里假定圖像名按序號(hào)排列 
  for i in range(0, image_num): 
    image_name = image_dir + str(i) + image_type 
    image_array = Image.open(image_name) 
    #縮放成統(tǒng)一尺寸 
    img = image_array.resize((480, 480), Image.ANTIALIAS) 
    out_tiff.write_image(img, compression = None, write_rgb = True) 
     
  out_tiff.close() 
  return  

用opencv讀取

import cv2


cv2.imread("filename",flags)
對(duì)于cv2,imread的關(guān)于通道數(shù)和位深的flags有四種選擇:

IMREAD_UNCHANGED = -1#不進(jìn)行轉(zhuǎn)化,比如保存為了16位的圖片,讀取出來仍然為16位。
IMREAD_GRAYSCALE = 0#進(jìn)行轉(zhuǎn)化為灰度圖,比如保存為了16位的圖片,讀取出來為8位,類型為CV_8UC1。
IMREAD_COLOR = 1#進(jìn)行轉(zhuǎn)化為RGB三通道圖像,圖像深度轉(zhuǎn)為8位
IMREAD_ANYDEPTH = 2#保持圖像深度不變,進(jìn)行轉(zhuǎn)化為灰度圖。
IMREAD_ANYCOLOR = 4#若圖像通道數(shù)小于等于3,則保持原通道數(shù)不變;若通道數(shù)大于3則只取取前三個(gè)通道。圖像深度轉(zhuǎn)為8位
對(duì)于多通道TIFF圖像,若要保證圖像數(shù)據(jù)的正常讀取,顯然要選擇IMREAD_UNCHANGED作為imread的flags設(shè)置值。

安裝pylibtiff

##PIL使用

導(dǎo)入 Image 模塊。然后通過 Image 類中的 open 方法即可載入一個(gè)圖像文件。如果載入文件失敗,則會(huì)引起一個(gè) IOError ;若無返回錯(cuò)誤,則 open 函數(shù)返回一個(gè) Image 對(duì)象。現(xiàn)在,我們可以通過一些對(duì)象屬性來檢查文件內(nèi)容,即:

>>> import Image
>>> im = Image.open("j.jpg")
>>> print im.format, im.size, im.mode
JPEG (440, 330) RGB

Image 類的實(shí)例有 5 個(gè)屬性,分別是:

format: 以 string 返回圖片檔案的格式(JPG, PNG, BMP, None, etc.);如果不是從打開文件得到的實(shí)例,則返回 None。

mode: 以 string 返回圖片的模式(RGB, CMYK, etc.);完整的列表參見 官方說明·圖片模式列表

size: 以二元 tuple 返回圖片檔案的尺寸 (width, height)

palette: 僅當(dāng) mode 為 P 時(shí)有效,返回 ImagePalette 示例

info: 以字典形式返回示例的信息

函數(shù)概貌。

Reading and Writing Images : open( infilename ) , save( outfilename ) Cutting and Pasting and Merging Images :

crop() : 從圖像中提取出某個(gè)矩形大小的圖像。它接收一個(gè)四元素的元組作為參數(shù),各元素為(left, upper, right, lower),坐標(biāo)

系統(tǒng)的原點(diǎn)(0, 0)是左上角。

paste() :

merge() :

>>> box = (100, 100, 200, 200)
 >>> region = im.crop(box)
 >>> region.show()
 >>> region = region.transpose(Image.ROTATE_180)
 >>> region.show()
 >>> im.paste(region, box)
 >>> im.show()

旋轉(zhuǎn)一幅圖片:

def roll(image, delta):
  "Roll an image sideways"

  xsize, ysize = image.size

  delta = delta % xsize
  if delta == 0: return image

  part1 = image.crop((0, 0, delta, ysize))
  part2 = image.crop((delta, 0, xsize, ysize))
  image.paste(part2, (0, 0, xsize-delta, ysize))
  image.paste(part1, (xsize-delta, 0, xsize, ysize))

  return image

幾何變換

>>>out = im.resize((128, 128))           #
 >>>out = im.rotate(45)               #逆時(shí)針旋轉(zhuǎn) 45 度角。
 >>>out = im.transpose(Image.FLIP_LEFT_RIGHT)    #左右對(duì)換。
 >>>out = im.transpose(Image.FLIP_TOP_BOTTOM)    #上下對(duì)換。
 >>>out = im.transpose(Image.ROTATE_90)       #旋轉(zhuǎn) 90 度角。
 >>>out = im.transpose(Image.ROTATE_180)      #旋轉(zhuǎn) 180 度角。
>>>out = im.transpose(Image.ROTATE_270)      #旋轉(zhuǎn) 270 度角。

Image 類的 thumbnail() 方法可以用來制作縮略圖。它接受一個(gè)二元數(shù)組作為縮略圖的尺寸,然后將示例縮小到指定尺寸。

import os, sys
from PIL import Image

for infile in sys.argv[1:]:
  outfile = os.path.splitext(infile)[0] + ".thumbnail"
  if infile != outfile:
    try:
      im  = Image.open(infile)
      x, y = im.size
      im.thumbnail((x//2, y//2))
      im.save(outfile, "JPEG")
    except IOError:
      print "cannot create thumbnail for", infile

這里我們用 im.size 獲取原圖檔的尺寸,然后以 thumbnail() 制作縮略圖,大小則是原先圖檔的四分之一。同樣,如果圖檔無法打開,則在終端上打印無法執(zhí)行的提示。

PIL.Image.fromarray(obj, mode=None)

Creates an image memory from an object exporting the array interface (using the buffer protocol).

If obj is not contiguous, then the tobytes method is called and frombuffer() is used.

Parameters: 
obj – Object with array interface
mode – Mode to use (will be determined from type if None) See: Modes.
Returns: 
An image object.

New in version 1.1.6.

PIL文檔

以上這篇Python模塊_PyLibTiff讀取tif文件的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python基礎(chǔ)之常用庫(kù)常用方法整理

    Python基礎(chǔ)之常用庫(kù)常用方法整理

    這篇文章主要介紹了Python基礎(chǔ)之常用庫(kù)常用方法整理,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • 淺談flask源碼之請(qǐng)求過程

    淺談flask源碼之請(qǐng)求過程

    這篇文章主要介紹了淺談flask源碼之請(qǐng)求過程,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • Python利用柯里化實(shí)現(xiàn)提高代碼質(zhì)量

    Python利用柯里化實(shí)現(xiàn)提高代碼質(zhì)量

    柯里化(Currying)是函數(shù)式編程中的一個(gè)重要概念,它可以將一個(gè)多參數(shù)函數(shù)轉(zhuǎn)化為一系列單參數(shù)函數(shù)的組合,本文將詳細(xì)解釋什么是柯里化,如何在Python中實(shí)現(xiàn)柯里化,感興趣的可以了解下
    2024-01-01
  • pytest自動(dòng)化測(cè)試數(shù)據(jù)驅(qū)動(dòng)yaml/excel/csv/json

    pytest自動(dòng)化測(cè)試數(shù)據(jù)驅(qū)動(dòng)yaml/excel/csv/json

    這篇文章主要為大家介紹了pytest自動(dòng)化測(cè)試數(shù)據(jù)驅(qū)動(dòng)yaml/excel/csv/json的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • 詳解Python中的List

    詳解Python中的List

    這篇文章主要為大家介紹了Python中的List,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • python實(shí)現(xiàn)猜數(shù)游戲(保存游戲記錄)

    python實(shí)現(xiàn)猜數(shù)游戲(保存游戲記錄)

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)猜數(shù)游戲,保存游戲記錄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • 特征臉(Eigenface)理論基礎(chǔ)之PCA主成分分析法

    特征臉(Eigenface)理論基礎(chǔ)之PCA主成分分析法

    這篇文章主要為大家詳細(xì)介紹了特征臉理論基礎(chǔ)之PCA主成分分析法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Python實(shí)現(xiàn)在Linux系統(tǒng)下更改當(dāng)前進(jìn)程運(yùn)行用戶

    Python實(shí)現(xiàn)在Linux系統(tǒng)下更改當(dāng)前進(jìn)程運(yùn)行用戶

    這篇文章主要介紹了Python實(shí)現(xiàn)在Linux系統(tǒng)下更改當(dāng)前進(jìn)程運(yùn)行用戶,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-02-02
  • 利用Python實(shí)現(xiàn)朋友圈中的九宮格圖片效果

    利用Python實(shí)現(xiàn)朋友圈中的九宮格圖片效果

    這篇文章主要給大家介紹了關(guān)于利用Python如何實(shí)現(xiàn)朋友圈中九宮格圖片效果的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • python基礎(chǔ)之文件的備份以及定位

    python基礎(chǔ)之文件的備份以及定位

    這篇文章主要介紹了python文件的備份以及定位,實(shí)例分析了Python中返回一個(gè)返回值與多個(gè)返回值的方法,需要的朋友可以參考下
    2021-10-10

最新評(píng)論

穆棱市| 灵宝市| 涞源县| 河曲县| 文安县| 贵阳市| 闽清县| 涞源县| 广水市| 南京市| 晋宁县| 依兰县| 南川市| 广宗县| 宁陵县| 楚雄市| 枣庄市| 昌平区| 双辽市| 盐亭县| 延边| 简阳市| 平谷区| 景德镇市| 望江县| 东兰县| 河北区| 忻州市| 无锡市| 柘城县| 社旗县| 祁东县| 靖远县| 花垣县| 宜章县| 贺州市| 健康| 禄劝| 大石桥市| 明光市| 丰县|