Pythonの生態系の画像フォーマット変換の問題(推奨)

それは、その後の枕、枕に取って代わられましたが、しかし、我々はまだ大会はPILと呼ばれるように、APIは、ほぼ完全に、PILが継承されるので、Pythonの生態系では、最も一般的なイメージライブラリはPIL--です。PILに加えて、より多くのプログラマは、画像を操作するためのOpenCVを使用することに慣れて。さらに、GUIライブラリでは、このようなwxPytonような各画像処理機構を、そこに定義された定義wx.Imageクラス画像処理、定義wx.Bitmapクラスとして画像表示装置として。

図PILは、画像ファイルCV2の読み書き、画像ファイルの読み取りおよび書き込みを引き出すCV2のPILオブジェクトと変換オブジェクト、PILは、オブジェクトとオブジェクトwx.Image変換、及び方法のnumpyのアレイロールオーバー画像。画像処理のニーズの多様な対処するのに十分なこれらのメソッドを、習得。ここに画像を挿入説明

  1. 画像ファイルを読み書きするPIL

次のコードは、アルファチャンネル画像ファイルダンプJPG形式を除く、PILとリードPNG形式の画像ファイルを示す図です。

>>> from PIL import Image
>>> im = Image.open(r'D:\CSDN\Python_Programming.png')
>>> r,g,b,a = im.split()
>>> im = Image.merge("RGB",(r,g,b))
>>> im.save(r'D:\CSDN\Python_Programming.jpg')
  1. CV2の読み取りと書き込みの画像ファイル

次のコードは、リードCV2のPNG画像ファイル、画像ファイルダンプJPG形式のフォーマットを示す図です。

>>> import cv2
>>> im = cv2.imread(r'D:\CSDN\Python_Programming.png')
>>> cv2.imwrite(r'D:\CSDN\Python_Programming.jpg', im)
True
  1. PILはHuzhuan CV2オブジェクトとオブジェクト

オブジェクトCV2フォーマット、本質的にnumpyのアレイ、numpy.ndarrayオブジェクトです。長いオブジェクトはPILとnumpyの配列変換を行うことができる限り、天然にPILは、オブジェクトとオブジェクトCV2系変換を達成します。

次のコードは、PILとPNG形式は、画像ファイルがnumpyの配列保存された画像ファイルに変換される読み取り示します。

>>> import cv2
>>> from PIL import Image
>>> import numpy as np
>>> im_pil = Image.open(r'D:\CSDN\Python_Programming.png')
>>> im_cv2 = np.array(im_pil)
>>> cv2.imwrite(r'D:\CSDN\Python_Programming.jpg', im_cv2)
True

次のコードは、画像ファイルがPILオブジェクトに変換として保存された画像ファイルフォーマットのPNG CV2、によって読み取られます。

>>> import cv2
>>> from PIL import Image
>>> im_cv2 = cv2.imread(r'D:\CSDN\Python_Programming.png')
>>> im_pil = Image.fromarray(im_cv2)
>>> im_pil.save(r'D:\CSDN\Python_Programming.jpg')
  1. PILはHuzhuan wx.Imageオブジェクトとオブジェクト

これらはPILオブジェクトとオブジェクトシステム変換のwx.Imageを達成するための2つの機能です。

def PilImg2WxImg(pilImg):
  '''PIL的image转化为wxImage'''
  image = wx.EmptyImage(pilImg.size[0],pilImg.size[1])
  image.SetData(pilImg.convert("RGB").tostring())
  image.SetAlphaData(pilImg.convert("RGBA").tostring()[3::4])
  return image
def WxImg2PilImg(wxImg):
  '''wxImage转化为PIL的image'''
  pilImage = Image.new('RGB', (wxImg.GetWidth(), wxImg.GetHeight()))
  pilImage.fromstring(wxImg.GetData())
  if wxImg.HasAlpha():
    pilImage.convert( 'RGBA' )
    wxAlphaStr = wxImg.GetAlphaData()
    pilAlphaImage = Image.fromstring( 'L', (wxImg.GetWidth(), wxImg.GetHeight()), wxAlphaStr )
    pilImage.putalpha( pilAlphaImage )
  return pilImage
  1. ダンプ画像アレイnumpyの

ランダム画像を生成する次のコードは、515x512ピクセルです。

>>> from PIL import Image
>>> import numpy as np
>>> a = np.random.randint(0,256,((512,512,3)), dtype=np.uint8)
>>> im_pil = Image.fromarray(a)
>>> im_pil.save(r'D:\CSDN\random.jpg')

ここに画像を挿入説明
概要

上記の我々は、ヘルプにしたい、のXiaobianは、導入するPythonの生態系の画像フォーマット変換の問題である
公共機関の数で良い評判をお勧めするどのように多くの、そして最終的にはより多くのコンテンツ[プログラマ]、がたくさんありますベテラン学習スキルは、経験、面接スキル、職場体験や他のシェアを学んで、より多くの我々は慎重に、実際のプロジェクトデータ上のゼロベースの入門情報を用意し、プログラマはいくつかの学習方法を共有し、日々のPython技術のタイミングを説明するために持っていると注意を必要とします細部ここに画像を挿入説明

公開された35元の記事 ウォンの賞賛1 ビュー10000 +

おすすめ

転載: blog.csdn.net/chengxun02/article/details/105029720