迷走ブログ

ファウスト的衝動を抱き、迷走している、凡人による気まぐれブログです。

【python】スクレイピングとその画像を表示させる

はじめに

 

今回は、スクレイピングして、その抽出した画像を表示させ、編集したいと思います。

 

使用したライブラリ

urllib.request

ウェブ上にある画像をダウンロードするために使用しました。

 

matplotlib

画像を出力するのに使用しました。

 

本題

はじめに、抽出したい画像を決めます。

今回は、ヤフーのトップページに表示されていた画像にしました。

本当は、有名人の画像でも抽出しようと思ったのですが、ブログに載せると肖像権が絡んでくるので使用できません。

 

画像のダウンロードとその画像を画面に表示させる

 

解説としては、 urllib.requestをインポートしています。

これは、urlretrieve()関数を使用することで、画像をダウンロードしています。

 

 また、axisの表示をオフにしました。オフにしない場合、画像の左と下に数値が表示されます。したがって、画像だけ表示させたい場合は、オフにした方がいいと思います。

 


 次に、OpenCVというオープンソースのライブラリを使って、画像をインラインに表示させています。

OpenCVというライブラリは、画像形式の変更や顔認識や文字認識などの処理にも使用されています。

 

今回は、そのライブラリを使って画像をリサイズしていきたいと思います。

 

とりあえずは、桜のところだけにしたいですね。

したがって、そこだけを切り取って、表示させたいと思います。

 

 

画像を切り取る

 

f:id:yktmmrmtoosa03:20190401021634p:plain

出力結果

うーん

微妙ですね(笑)。

 

OpenCVは、座標系を利用して、画像処理します。

したがって、画像の左上の座標が(0,0)となります。そして、右下に行くほど値が大きく増えていきます。

 

桜だけを表示させるとしたら、[100:300,100:200]くらいが一番いいかもしれないですね。

 

 

おわりに

 

やっぱり、サンプルの画像は他から取ってくればよかったのかもしれませんね(笑)。

 

そもそも、一枚の画像を処理するということ自体、わざわざpythonで取り組むべきことじゃないですよねorz