コピー2018.11.27スポンサーリンクPythonのライブラリーNumPyを使った配列(Array)の操作はすでに学んできました。NumPyの配列を任意に作ってこれまでは扱ってきましたが、データ分析に関連して最近はAIなどで画像の読み取りなどがよく話題になります。ここでは画像ファイルとNumPyの配列との関係を使って画像の色の変換をみていきたいと思います。画像処理にはpillow(PIL)を使います。最後にスポンサーリンクimageファイルとRGBカラーモデルimageファイルは、ピクセル単位のデータが縦と横に集まりそれぞれにカラーデータを与えられた配列と考えることができます。これは行と列のデータ構造を持った配列表示です。縦の行が画像のheightに当たります。横の列が画像のwidthに当たります。それぞれの位置にはカラーのデータが格納されていることになります。グレースケールでは、0と1の間で白と黒の濃度を示すことになります。RGBカラーモデルはR(red)、G(green)、B(blue)の3原色を合成して多様な色を表現する方法で、それぞれの色の明度を0から255で示します。下の画像はKeynoteのカラー表示で、RGBを使ったものです。スポンサーリンクNumPyのArrayとimageファイルの読み込みでは、imageファイルの読み込みをやっていきましょう。Pillow(PIL)のインストール画像ファイルを読みこむために画像処理ライブラリのPillow(PIL)をインストールします。Anacondaをインストールしている環境であればすでにインストールされているかもしれません。インストールされていなければ、ターミナルからcondaコマンドやpipコマンドでインストールしましょう。notebookを使って次の画像を読み込んでいきます。apples.jpgを作業ディレクトリに配置します。各種ライブラリのインポートからはじめます。ImageNumPy、Matplotlibをインポートします。ここでは先ほどインストールしたpillow(PIL)からImageをインポートします。先ほどのapples.jpgを読み込みますが、Image.open()を使います。Image.open('apples.jpg')imgopen()にファイル名を指定してイメージファイルを開いています。これを変数imgに渡しています。実行すると次のように表示されます。(画像表示の部分は表示サイズの関係で、全体ではなく一部だけ切り取っています)変数imgの型をtype()で調べてみます。Pythontype(img)1type(img)Jpegファイルであるのがわかります。これをNumPyのasarray()を使って読み込んでいきます。asarray()はリストやタプルなどの配列のようなオブジェクトから配列を生成します。画像ファイルは縦横にデータが並べられた配列と考えることができます。np.asarray(img)img_arr.shapeasarray()で読み込んだデータを変数img_arrに代入して、shapeを見てみます。1066行、1600列の配列データになっています。3はカラーのR、G、Bの3つのデータがあることを示しています。heihtが1066px、widthが1600px、3カラーチャンネルということになります。このデータの配列をimshow()で表示します。Pythonplt.imshow(img_arr)1plt.imshow(img_arr)画像の変換この画像をRGBカラーモデルのGの緑を強調した画像に変換してみようと思います。img_arrをcopy()を使ってコピーします。img_arr.copy()コピーしたものをimg_greenとしておきます。RGBデータ)の構造になっているのは、上のshapeを使ったことでわかります。画像部分のデータは全部表示するなら特に切り取ることはありません。RGBデータは0がR(赤)、1がG(緑)、2がB(青)意味します。ここでは緑系の画像にしようとしているので、RGBの1は操作しないことにします。すると、img_greenは次のように操作することができます。0どちらもコロンを使って画像データを全て表示する操作になっていますので、データを切り取っていません。RGBのRとBである0、1を指定して0を代入し、赤と青の色味を消しています。これを再度、imshow()で表示してみます。Pythonplt.imshow(img_green)1plt.imshow(img_green)リンゴの画像が緑中心のものに変換されました。以上、画像の色の変換を行ってみました。スポンサーリンク最後にここでは、PythonのNunPyの配列と画像のデータを扱ってみました。AI、機械学習などでも扱うことになります。画像ファイルを読みこむために画像処理ライブラリのPillow(PIL)をインストールして使ってみました。RGBカラーモデルの表現方法についても理解しておきましょう。ここでは色の変換をしてみましたが、画像サイズや比率、形の変換もすることができます。このあたりは実際に行う時に触れてみようと思います。コードグラフィティ関連記事NumPy【Python】NumPyの基本的な使い方の速習Pythonで数値計算を効率的に行うための拡張モジュールがNumPyです。ここではNumPyの基本的な使い方である配列の作り方とその演算や操作の方法をみていきます。別のところでNumPyをしっかりと扱います。SQLPythonの拡張モジュールPandasを使ってデータの入力と出力を扱います。pd.read_メソッドを使ってさまざまな種類のファイルを読み出すことができます。ここではCSV、Excel、HTML、SQLの4つの一般的なデータ型を扱います。ufuncPythonのライブラリーNumPyを使って配列の演算を行います。四則演算などの各種演算ができるだけでなく、ユニバーサル関数(ufunc)というものを使えば、演算処理の速度を上げることができるので、大量のデータを計算するには有用です。【Python】NumPy,Pandas,Matplotlibと単回帰分析で家賃の予測値を求めてみるPythonのライブラリであるNumPy、Pandas、Matplotlibを使って単回帰分析に挑戦。部屋の広さから家賃の予測をしてみます。データ分析には統計の定義の結果だけを利用すればできます。理解を深める為に統計学の知識も得たいですね。2018.10.12Pandas【Python】PandasでDataFrameオブジェクトを作るPythonの拡張モジュールPandasのDataFrameを扱います。DataFrameは一連のデータオブジェクトをまとめて、同じインデックスを共有することができます。DataFrameはPandasの主要な機能と言っていいと思います。2018.10.20NumPy【Python】NumPy配列のインデックスと値の指定選択Python拡張モジュールのNumPyを使って配列(array)のインデックス操作を学びます。配列はインデックスを指定して、配列の値を取り出したり、配列をスライスすることができます。スライスとcopy()と元の配列との関係も理解しましょう。Scriptでの開発で承認が必要の表示。notebookの基本的な使い方。【Python】tkinterの使い方入門。Scriptでの開発で承認が必要の表示。notebookの基本的な使い方。【Python】tkinterの使い方入門。MacにインストールしたAnacondaのアップデート方法スポンサーリンクタイトルとURLをコピーしました。