電光掲示板のように文章が右から左にスクロールするGIFアニメを作成します。横長の画像に文章を書きその画像の一部を左から右に切り取りそれを順番に表示することでスクロールを表現します。 関連記事 画像を描画しアニメーションGIFを作成する 字幕がスクロ…
四角い画像に円を充てんします。Pythonの画像処理ライブラリOpenCVでランダムなサイズの円を描画し、描画した円の位置とサイズを記録します。新しく描こうとする円がすでに描画した円と重ならないかチェックし、重ならなければ描画します。
白バックの人物写真から人物だけを切り抜いて風景写真に貼り付けます。Pythonの画像処理ライブラリPillowのImage.compositeを使うとマスク画像を使って二枚の画像を合成できます。
サンタクロースの画像にキラキラとした文字で'Merry Xmas'と書きます。Pythonの画像処理ライブラリPillowのImage.compositeを使うと2つの画像をマスク画像に応じて合成することができます。'Merry Xmas'の文字でマスク画像を作りサンタクロースとキラキラ画…
画像にウオーターマーク(すかし)をつける作業を自動で行います。Pythonの画像処理ライブラリPillowのImage.alpha_compositeにより画像と半透明のウオーターマークをアルファブレンドします。
自民党総裁選候補者4人の主張から頻出単語を抽出して図示します。各候補者の主張からPythonの形態素解析ライブラリJanomeで名詞を抽出、出現頻度の高いものを各候補のキーワードとして図示します。
ブラウザ上で動作するプログラムの対話型実行環境jupyter notebookにUIを設置します。ライブラリipywidgetsを使うとjupyter notebookにUIが設置できます。スライダーを設置して画像の色味をインタラクティブに補正できるようにします。
暗い場所や高いISO感度などで写真を撮影すると撮像素子の雑音に起因してノイズが乗ります。Pythonの画像処理ライブラリOpenCVのノイズ除去機能を使うことで対象物のディテールを維持したままノイズが除去できます。
写真に写った余分なものを消去します。Pythonの画像処理ライブラリOpenCVのInpainting機能により写真の小さな傷や余分なものを消去できます。消去した部分は周辺の画素情報より補完されます。
アジサイの写真を明るく鮮やかにします。Pythonの画像処理ライブラリOpenCVで画像の色空間をBGRからHSVに変換、S(彩度)・V(明度)をルックアップテーブルでガンマ補正することで鮮やかさと明るさを上げます
白地に黒の輪郭だけ描かれた図形をランダムな色で塗りつぶします。Pythonの画像処理ライブラリOpenCVの領域検出機能で図形を検出し、検出した座標に色を塗ります。
写真に関係無い人が写っている場合に顔にモザイクをかけたい場合があります。Pythonの画像処理ライブラリOpenCVの顔検出機能を使って人の顔を自動検出しモザイクをかけます。
写真を少しずつ拡大してズームインしているように見せます。Pythonの画像処理ライブラリPillowで写真の四方をカットし決まったサイズにリサイズします。この時のカット幅を増やすことで被写体を拡大します。
ある画像から別の画像に少しずつ切り替わるアニメーションを作ります。Pythonの画像処理ライブラリPillowのブレンド機能で2つの画像を比率を変えながらアルファブレンドすることで画像が切り替わるように見せます。
物の周りにその色がにじんでいるように描くことで物が発光していることを表現できます。Pythonの画像処理ライブラリOpenCVの画像ぼかし処理で描画した図形の周り色がにじんでいるように見せます。
比較明合成は複数枚の画像のピクセル毎の明度を比較し明るい方のピクセルを採用して合成する手法で、星の軌跡や夜景の撮影で使われます。Pythonの画像処理ライブラリOpenCVで複数枚の写真から車のライトの光跡を比較明合成します。
デジカメやスマートフォンで撮影した画像はそのままだと数MB程度と結構サイズが大く容量を小さくしたい場合があります。Pythonの画像処理ライブラリOpenCVではJpeg画像保存時に圧縮率を指定できファイルサイズを小さくすることが可能です。
賢くなるパズル(KENKEN)はマス目の縦横に数字が重ならないように当てはめていくペンシルパズルの一種です。Pythonのitertools.permutationsにより組み合わせを生成しマス目に当てはめて条件を満足するかチェックする方法でパズルを解きます。
充填ジュリア集合は漸化式 zn+1 = zn2 + cで定義される複素数列で、n→∞の極限において無限大に発散しないという条件を満たす複素数z0の集合を指します。Pythonで複素数を扱うcomplex(real, imag)の実部(real)と虚部(imag)を画像のx,yに対応させ各座標で数列…
マンデルブロ集合は複素数列{zn}n∈N∪{0} が、n→∞の極限において無限大に発散しないという条件を満たす複素数の集合を指します。Pythonで複素数を扱うcomplex(real, imag)の実部(real)と虚部(imag)を画像のx,yに対応させ各座標で数列が発散するかどうかチェッ…
劣化した古い白黒写真の茶色っぽい色味をセピア色といいます。画像をセピア色に変換することで古い写真のように見せることができます。セピア色への変換にはいくつか手法がありますが画像をグレースケール変換したのちに、その画素値を元に青が弱く赤が強い…
ルックアップテーブルはあらかじめ用意された画素値に対応した変換表で画像の調整に用いられます。Pythonの画像処理ライブラリOpenCVのLUTによりB,G,R各チャンネル個別にルックアップテーブルでガンマ補正し画像の色味を変えます。
ルックアップテーブルはあらかじめ用意された画素値に対応した変換表で画像の調整に用いられます。Pythonの画像処理ライブラリOpenCVのLUTにより彩度、明度チャンネル個別にルックアップテーブルでガンマ補正し画像の彩度、明度を変えます。
モンテカルロ法はシミュレーションや数値計算を乱数を用いて行う手法の総称です。正方形と内接する四分割円を考え、正方形にランダムに多数の点を描画した際に、内接円の中と外にある点の数から円の面積が求まり、そこから円周率が算出できます。
Pythonの画像処理ライブラリOpenCVには領域検出機能(findContours)および回転外接矩形算出機能(minAreaRect)があります。お札が傾いて写った写真からこれらの機能で傾いている角度を算出、求めえた角度を利用し元画像を回転、お札を水平にします
ランダムウォークは確率的な運動モデルの一種で、次にどちらにどれくらい動くかを確率的に決めるため不規則な挙動を示します。2次元のランダムウォークモデルで感染の広がりのシミュレーションを行います。ある領域に50人の人間がいて1人だけ感染症に掛かっ…
Pythonのエクセルファイル操作用ライブラリopenpyxlを使うとエクセルワークブックの生成や読み書き、データ入力、グラフ作成などがエクセルを立ち上げずにPython上で行えます。新規ワークブックの作成、データ入力、散布図作成を行います。
国内の新型コロナウイルス陽性者数のcsvファイルを読み出しグラフにします。Pythonでグラフを作る場合通常ライブラリmatplotlibを使用しますがここでは画像処理ライブラリPillowでアニメーショングラフを描画します。
四角形と三角形が混在する画像から、三角形のみを抽出します。Pythonの画像処理ライブラリOpenCVの領域検出機能findContoursで図形の領域を抽出、近似図形算出機能approxPolyDPで求めた近似図形の頂点数から三角形かどうかを判断します。
画像が回転するアニメーションを作ります。Pythonの画像処理ライブラリPillowのrotateで画像を回転、cropで画像の中央を切り抜きます。回転角度を変えながら画像を生成しGIFアニメを作ります。