Pythonでいろいろやってみる

Pythonを使った画像処理や機械学習などの簡単なプログラムを載せています。

画像処理

ルックアップテーブルで画像の彩度、明度を調整する(画像を明るく鮮やかにする)

ルックアップテーブルはあらかじめ用意された画素値に対応した変換表で画像の調整に用いられます。Pythonの画像処理ライブラリOpenCVのLUTにより彩度、明度チャンネル個別にルックアップテーブルでガンマ補正し画像の彩度、明度を変えます。

傾いた画像を自動で水平にする

Pythonの画像処理ライブラリOpenCVには領域検出機能(findContours)および回転外接矩形算出機能(minAreaRect)があります。お札が傾いて写った写真からこれらの機能で傾いている角度を算出、求めえた角度を利用し元画像を回転、お札を水平にします

四角形と三角形の中から三角形だけ抽出する(特定形状の抽出)

四角形と三角形が混在する画像から、三角形のみを抽出します。Pythonの画像処理ライブラリOpenCVの領域検出機能findContoursで図形の領域を抽出、近似図形算出機能approxPolyDPで求めた近似図形の頂点数から三角形かどうかを判断します。

画像が回転する動画

画像が回転するアニメーションを作ります。Pythonの画像処理ライブラリPillowのrotateで画像を回転、cropで画像の中央を切り抜きます。回転角度を変えながら画像を生成しGIFアニメを作ります。

少しずつ画像がはっきりする動画

ぼやけた画像からはっきりした画像へと少しずつ変化する動画を作成します。 Pythonの画像処理ライブラリPillowのモザイク処理やBlurによるぼかし処理を少しずつ弱くして徐々に画像がはっきりするアニメーションGIFを作ります。

複素関数を視覚化する

z=a+bi を用いた複素関数 f(z)において、実部 a、虚部 b に対して偏角 arg z および 絶対値 |r| が決まります。これら4つのパラメータを図示するために実部 a をx軸、虚部 b をy軸とした2次元グラフに、偏角 arg z を対応する色相でプロットする方法がありま…

いろいろならせんを描く

(1) アルキメデスのらせん(等間隔)、(2) 放物らせん(外側に行くほど間隔が狭くなる)、(3) 双曲らせん(y=aを漸近線に持つらせん)、(4) リチュース(Θが大きくなるにつれ原点に近づくらせん)、(5) 対数らせん(等角螺旋)の5種類のらせんをPythonの画像処理ライブ…

ブラシ状の線を描く

Pythonの画像処理ライブラリOpenCVでブラシ状の線を描きます。ある座標から離れると密度が小さくなるよう点を描画することで濃淡をつけ、ブラシ状に見せます。乱数生成ライブラリrandomのgaussによりガウス分布を生成し点の座標を決めます。

リサージュ曲線を描く

リサージュ曲線は直行した2つの単振動の合成による平面図形で、 tを介した媒介表示変数表示では x = Acos(at) y = Bcos(bt+δ) となり、振幅の係数A,B、周波数の係数a,b、位相差δによりさまざまな図形が現れます。 Pythonの画像処理ライブラリOpenCVでリサー…

画像をマトリックス風に変換する

画像を映画マトリックスのような緑色の反転したカタカナで置き換えます。画像をPythonの画像処理ライブラリOpenCVのエッジ検出機能Cannyでエッジ検出し、エッジ部分を反転した緑色のカタカナで置き換えます。

まちまちなサイズの複数の画像をきれいに並べて一枚の画像にまとめる

サイズの異なる複数の画像を一枚の画像にきれいにまとめられると便利です。フォルダ内の画像ファイルをすべて読み出しPythonの画像処理ライブラリOpenCVにより2枚ずつ画像の高さをそろえて横に並べ、すべての画像を一枚の画像に整理します。

2枚の画像を斜めにカットして貼り合わせる

2枚の画像を斜めにカットして貼り合わせます。Pythonの画像処理ライブラリPillowのcompositeメソッドを使うと2枚の画像をマスク画像の形に応じて合成できます。

星のベクター画像を作成する

ドットの集合である普通の画像(ラスター画像)と異なり、ベクター画像は線や円といったオブジェクトの集合として記述されており、拡大縮小してもギザギザになったりせず画像の質が変わらない特徴があります。Pythonのライブラリsvgwriteを使うとベクターファ…

青海波のベクター画像を作成する

日本の伝統的な文様である青海波のベクター画像を作成します。ドットの集合である普通の画像(ラスター画像)と異なり、ベクター画像は線や円といったオブジェクトの集合として記述されており、拡大縮小してもギザギザになったりせず画像の質が変わらない特徴…

星を描く

Pythonの画像処理ライブラリPillowのpolygonメソッドを使って星形を描きます。星を描画する関数starを作り、任意の位置に任意の色、形、角度の星形を描きます。

画像を左右反転して貼る

pythonの画像処理ライブラリPillowを使って画像を左右反転し元画像と合算し一枚の画像にします。 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 Pillow 5.2.0 準備 画像ファイルはフリー写真素材ぱくたそからダウンロードさせていた…

画像の一部を切り抜いて繰り返し貼る

pythonの画像処理ライブラリPillowを使って画像の一部を切り抜いて繰り返し貼ります。 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 Pillow 5.2.0 準備 画像ファイルはフリー写真素材ぱくたそからダウンロードさせていただき、jupy…

PillowのImageEnhanceで画像のシャープネスを変える

Pythonの画像処理ライブラリPillowのImageEnhanceモジュールは画像のコントラストやシャープネスを調整する機能があります。ImageEnhance.Sharpnessメソッドにより画像のシャープネスを調整します。

PillowのImageEnhanceで画像のブライトネス(明るさ)を変える

Pythonの画像処理ライブラリPillowのImageEnhanceモジュールは画像のコントラストやシャープネスを調整する機能があります。ImageEnhance.Brightnessメソッドにより画像の明るさを調整します。

PillowのImageEnhanceで画像のコントラストを変える

Pythonの画像処理ライブラリPillowのImageEnhanceモジュールは画像のコントラストやシャープネスを調整する機能があります。ImageEnhance.Contrastメソッドにより画像のコントラストを調整します。

PillowのImageEnhanceで画像の鮮やかさを変える

Pythonの画像処理ライブラリPillowのImageEnhanceモジュールは画像のコントラストや鮮やかさ、シャープネスを調整する機能があります。ImageEnhance.Colorメソッドにより画像の鮮やかさを調整します。

風景写真をクッキリさせる(空を青く、緑を鮮やかに)

ガンマ補正は画像の特定チャンネルの強調などに使われる非線形補正です。Pythonの画像処理ライブラリOpenCVで青空と草むらの写った写真のすべての画素値に対してガンマ補正し青空と草むらを鮮やかにします。

フォルダ内の画像に自動で枠線をつける

ウェブサイトに画像を載せる場合など背景が白い画像だとページの地の色と同じになって境界がわかりづらい場合があります。フォルダ内の画像を読み出しPythonの画像処理ライブラリPillowで画像に枠線を自動で付けます。

アスキーアートを自動生成する

画像をテキストで置き換えるいわゆるアスキーアートを自動生成します。Pythonの画像処理ライブラリPillowを使って、画像の濃い部分を画数の多い文字、画像の薄い部分を画数の少ない文字で置き換えることでアスキーアート化します。

文字が浮かび上がるGIFアニメを作成する

文字が浮かび上がるGIFアニメを作ります。Pythonの画像処理ライブラリPillowを使って黒字の画面に少しずつ黒→白へ色を変えて文字を描きます。その画像をGIFアニメーション化することで文字が浮かび上がるようなアニメーションを作成します。

字幕がスクロールするGIFアニメを作成する

スターウォーズのオープニング画面のように、画面の下からテキストが現れ上に移動するGIFアニメを作成します。折り返したテキストの描画開始位置を少しずつ変えることでスクロール効果を表現します。 関連記事 画像を描画しアニメーションGIFを作成する テキ…

テキストを折り返し画像に収まるように表示する

画像に長い文字列を表示する場合、そのままでは折り返されず画像からはみ出てしまいます。標準ライブラリのtextwrapモジュールを使うことで文字を折り返して表示できます。 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 Pillow 5.2…

ルパン三世タイトル画面風GIFアニメーションを作る

テレビアニメ・ルパン三世のタイトル画面風のGIFアニメーションを作ります。特大フォントで一文字づつ表示し、最後にタイトル全体を表示します。 関連記事 画像を描画しアニメーションGIFを作成する 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0…

画像を描画しMP4動画を作成する

OpenCVのcv2.VideoWriterメソッドを使うと複数の画像ファイルから動画を作成することができます。ここではpillowで画像を描画・保存し、OpenCVで動画化しています。 関連記事 画像を描画しアニメーションGIFを作成する 環境 windows10 home Anaconda 3/ jupy…

画像を描画しアニメーションGIFを作成する

画像処理ライブラリPillow(PIL)を使うとアニメーションGIFファイルを作成できます。 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 Pillow 5.2.0 やること 640x480の黒ベタ画像を描画 直径200pxの赤で塗りつぶした円を描画 「赤い…