PYTHON

【python】web画像を入力・出力する方法を解説(画像処理①)

2021-11-20

こんな方におすすめ

  • python学習者
  • 画像処理の方法を知りたい人
  • 画像の入力・出力方法を知りたい人

こんにちは、わやです。
みなさん、python楽しんでいますか?

最近、pythonの情報を収集していたら以下のようなサイトを見つけました。

https://github.com/yoyoyo-yo/Gasyori100knock

画像処理100本ノック!!というタイトルなんですが、pythonの画像処理を勉強するために、お題100個を通してスキルを身につけていこうという記事です。

早速ですが一番最初の画像を入力、出力する方法を学習し身につけたので、皆さんにわかりやすく提供したいと思います。

画像処理(入力出力):ライブラリ Scikit-image(skimage)

画像処理と聞くと、opencvを思い浮かべる方が多いと思います。
確かにローカルに保存した写真を使うなら、opencvを使っていただいていいと思います。

ただし、今回は上記リンクにあるようにweb上の画像を使用するため、opencvではかなり手間なので、Scikit-image(skimage)を使用します。

Scikit-image(skimage)とは?

scikit-image は画像処理に特化した Python 画像ライブラリで、 NumPy 配列を画像オブジェクトをネイティブに扱います。 scikit-image を多様な画像処理タスクにどう利用するかや NumPy や Scipy などの他の Python の科学技術モジュールとの連携についても扱えます。

難しいことを言ってもしょうがないですが、今回はこのskimageを使ってweb上の写真にアクセスして画像処理のための入力出力を実施したいと思います。

Scikit-image(skimage) でできること

Web サイト: http://scikit-image.org/

  • フィルタ: 画像を他の画像に変換する関数
    • NumPy の仕組み
    • 一般的なフィルタリングアルゴリズム
  • データ集約関数: 画像ヒストグラムの計算、極大値の位置、コーナの位置など
  • 他の操作: 入出力、可視化、など

画像処理(入力出力):コード

コード

それでは、scikit-imageを使って画像の入出力をするコードを解説します。
全体のコードは以下の通りです。

※今回は100本ノックで利用している画像にアクセスするように設定されています。

import matplotlib.pyplot as plt#画像出力ライブラリ
from skimage import io#画像入力ライブラリ

img_orig = io.imread('https://github.com/yoyoyo-yo/Gasyori100knock/raw/master/dataset/images/imori_256x256.png')#webから画像を入力

plt.imshow(img_orig)
plt.show()

解説

上記のコードを見ただけでわかられる方は不要ですが、初心者の方向けに解説します。

項目解説
画像
入力
2行目:scikit-imageのサブライブラリであるioをインポートしています。
4行目:「img_orig」にweb画像のデータを配列として入力しています。
io.impread('画像URL')
画像
出力
1行目:画像を出力表示するためにmatplotlibライブラリをインポートしています。
6,7行目:img_origに入力した画像データを表示します。

表にまとめるとすごい簡単に見えます(笑)
実際コードとしては簡単なのでこれくらい覚えちゃっていいと思いますし、ブックマークいただいてもいいです。

まとめ:簡単に画像処理としてweb画像を入出力できる

web画像を簡単に入力出力する方法を解説しました。

opencvではweb画像をそのまま利用するのは手間なのですが、scikit-imageを使えばたったこれだけで入出力できるようになります。
画像処理において、web画像を操作するのは当たり前かつよく使う手法なのでしっかり覚えていきましょう。

また、今後も画像処理について、初心者向けに情報をまとめますのでよかったら見ていってください。

  • この記事を書いた人

わや

大手メーカーで働く30歳研究職。機械設計やったりプログミングやったりと結構マルチタイプ エンジニア向けの情報を発信するので、記事を見て気に入ってもらえたら嬉しい。

-PYTHON
-, ,