Pythonモジュール_PyLibTiffがtifファイルを読み出す例


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:         
def image_array_to_tiff(image_dir, file_name, image_type, image_num): 
 
  out_tiff = TIFF.open(file_name, mode = 'w') 
   
  #             
  for i in range(0, image_num): 
    image_name = image_dir + str(i) + image_type 
    image_array = Image.open(image_name) 
    #        
    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)

  cv2,imread          flags     :

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 
     TIFF  ,             ,     IMREAD_UNCHANGED  imread flags   。
pylibtiffをインストールします
萼菵PIL使用
Imageモジュールを導入します。Imageクラスのopenメソッドで画像ファイルを読み込むことができます。ファイルの読み込みに失敗したら、IOErrを引き起こします。エラーがない場合は、オプン関数はImageオブジェクトを返します。現在、いくつかのオブジェクト属性によってファイルの内容を確認できます。

>>> import Image
>>> im = Image.open("j.jpg")
>>> print im.format, im.size, im.mode
JPEG (440, 330) RGB
Imageクラスの例は、5つの属性があります。それぞれ、
format:stringで画像ファイルのフォーマット(JPG、PNG、BMP、None、etc.)に戻ります。ファイルを開くことから得られた例でない場合は、Noneに戻ります。
mode:stringでピクチャのパターン(RGB、CMYK、etc.)に戻ります。完全なリストは公式説明・画像モードリストを参照してください。
size:二元tupleで画像ファイルのサイズ(width,height)を返します。
palette:modeがPの場合のみ有効で、ImagePaletteの例を返します。
info:例の情報を辞書で返します。
関数の概要。
Reading and Writing Images:open(infilename)、save(out filename)Cuting and Pasting and Merging Images:
crop():画像から矩形サイズの画像を抽出します。それは4つの要素の元のグループを受信してパラメータとして、各要素は(left、uper、right、lower)、座標です。
システムの原点(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()
画像を回転:

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)               #      45   。
 >>>out = im.transpose(Image.FLIP_LEFT_RIGHT)    #    。
 >>>out = im.transpose(Image.FLIP_TOP_BOTTOM)    #    。
 >>>out = im.transpose(Image.ROTATE_90)       #   90   。
 >>>out = im.transpose(Image.ROTATE_180)      #   180   。
>>>out = im.transpose(Image.ROTATE_270)      #   270   。
Image類のthumbnail()方法はサムネイルを作るために使用できます。サムネイルのサイズとして2元の配列を受け入れ、例を指定サイズに縮小します。

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()でサムネイルを作成します。サイズは元の図の4分の1です。同様に、図ファイルが開けられないと、実行できないメッセージが端末に印刷されます。
PIL.Image.fromaray(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 C Object with array interface
mode C 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ファイルを読み込む例は、小編集が皆さんに提供した内容の全てです。参考にしていただければと思います。よろしくお願いします。