OpenCV
動画をキャプチャーしてタイムラプス動画を作成します。ライブラリPyAutoGUIを使うとパソコン画面のスクリーンショットを取得できます。動画を再生しているパソコンのスクリーンショット画像を一定間隔で取得し、OpenCVで動画ファイルに書き込むことでタイム…
TBSのクイズ番組「東大王」で、国旗の色比率を円グラフにしたものを見て国旗を当てる、というクイズをやっていたのを見て同じようなグラフを作ってみました。
パソコンの内蔵カメラで動画を撮ります。Pythonの画像処理ライブラリOpenCVでパソコンのカメラ画像を取り込み動画化します。
PythonのライブラリOpenCVで画像を碁盤目状に分割し、それぞれのセルを色味の近い画像に置き換えてモザイク画を作ります
チュートリアル動画作成などPCの画面を録画したい場合に、PythonのライブラリPyAutoGUIで画面をキャプチャーし画像処理ライブラリOpenCVでそれを繋げて動画にできます。
動画を鉛筆画風に変換します。Pythonの画像処理ライブラリOpenCVのcv2.pencilSketchで動画の各フレームを鉛筆画風に変換し動画に保存しなおします。
フォルダ内の複数の動画に字幕を付けて1つの動画にまとめます。Pythonの画像処理ライブラリOpenCVで動画の読み出しと編集、書き出しを画像処理ライブラリPillowで字幕の書き込みを行います。
動画を途中からスローモーションにします。Pythonの画像処理ライブラリOpenCVで動画を読み出し、指定した時間以降で同じフレームを10コマ連続させて再び動画にすることでスローモーションにします。
動画から指定のフレームを切り出し文字を入れてサムネイルを作ります。Pythonの画像処理ライブラリOpenCVで動画ファイルの読み出し、指定した秒数のフレームのキャプチャー、明度と彩度の強調を、タイトル文字の描画とリサイズを画像処理ライブラリPillowで…
画像を指定のサイズになるまで自動で圧縮します。Pythonの画像処理ライブラリOpenCVでjpeg品質を指定して画像を保存し、狙いのサイズより大きければjpeg品質を下げて再び保存します。
動画を明るく鮮やかに変換します。Pythonの画像処理ライブラリOpenCVで動画の各フレームの彩度、明度に対してガンマ補正を行い強調することで明るく鮮やかに補正します。
動画ファイルを読み出し古いモノクロ映画っぽくします。Pythonの画像処理ライブラリOpenCVで動画を読み出しcvtColorによりグレースケール変換します。よりモノクロ映画っぽくするためにequalizeHistにより画像のコントラストを上げます。
夜景の動画の空にUFOを追加します。動画ファイルを読み出して移動する楕円形を描画し再び動画として保存します。画像処理ライブラリOpenCVで動画ファイルを読み出し、フレーム毎の画像にcv2.ellipseで楕円形を描画し、その画像をつなぎ合わせてUFO動画にしま…
特定区間で逆再生-順再生を繰り返す動画を作ります。Pythonの画像処理ライブラリOpenCVで動画ファイルを読み出し、全フレームを画像としていったん保存します。その画像をつなぎ合わせて行ったり来たりする動画を作ります。
動画ファイルを読み出し、動画の右下にタイムコードを入れて保存します。Pythonの画像処理ライブラリOpenCVで動画を読み出し、現在の時間とフレーム数からタイムコードを作成し動画に書き込みます。
動画を映画マトリックスのような緑色の反転したカタカナで置き換えます。画像を一コマずつ取り込んでライブラリOpenCVのエッジ検出でエッジ画像を作成、エッジ部分を反転した緑色のカタカナで置き換えます。
人物の写った複数の画像から人物部分のみを切り抜いて1枚の画像に集約します。Pythonの画像処理ライブラリOpenCVの人の顔の機械学習データを用いて顔検出を行い顔の位置を特定、その周囲を人物として切り抜いて一枚の画像にします。
四角い画像に円を充てんします。Pythonの画像処理ライブラリOpenCVでランダムなサイズの円を描画し、描画した円の位置とサイズを記録します。新しく描こうとする円がすでに描画した円と重ならないかチェックし、重ならなければ描画します。
ブラウザ上で動作するプログラムの対話型実行環境jupyter notebookにUIを設置します。ライブラリipywidgetsを使うとjupyter notebookにUIが設置できます。スライダーを設置して画像の色味をインタラクティブに補正できるようにします。
暗い場所や高いISO感度などで写真を撮影すると撮像素子の雑音に起因してノイズが乗ります。Pythonの画像処理ライブラリOpenCVのノイズ除去機能を使うことで対象物のディテールを維持したままノイズが除去できます。
写真に写った余分なものを消去します。Pythonの画像処理ライブラリOpenCVのInpainting機能により写真の小さな傷や余分なものを消去できます。消去した部分は周辺の画素情報より補完されます。
アジサイの写真を明るく鮮やかにします。Pythonの画像処理ライブラリOpenCVで画像の色空間をBGRからHSVに変換、S(彩度)・V(明度)をルックアップテーブルでガンマ補正することで鮮やかさと明るさを上げます
白地に黒の輪郭だけ描かれた図形をランダムな色で塗りつぶします。Pythonの画像処理ライブラリOpenCVの領域検出機能で図形を検出し、検出した座標に色を塗ります。
写真に関係無い人が写っている場合に顔にモザイクをかけたい場合があります。Pythonの画像処理ライブラリOpenCVの顔検出機能を使って人の顔を自動検出しモザイクをかけます。
物の周りにその色がにじんでいるように描くことで物が発光していることを表現できます。Pythonの画像処理ライブラリOpenCVの画像ぼかし処理で描画した図形の周り色がにじんでいるように見せます。
比較明合成は複数枚の画像のピクセル毎の明度を比較し明るい方のピクセルを採用して合成する手法で、星の軌跡や夜景の撮影で使われます。Pythonの画像処理ライブラリOpenCVで複数枚の写真から車のライトの光跡を比較明合成します。
デジカメやスマートフォンで撮影した画像はそのままだと数MB程度と結構サイズが大く容量を小さくしたい場合があります。Pythonの画像処理ライブラリOpenCVではJpeg画像保存時に圧縮率を指定できファイルサイズを小さくすることが可能です。
充填ジュリア集合は漸化式 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に対応させ各座標で数列が発散するかどうかチェッ…
劣化した古い白黒写真の茶色っぽい色味をセピア色といいます。画像をセピア色に変換することで古い写真のように見せることができます。セピア色への変換にはいくつか手法がありますが画像をグレースケール変換したのちに、その画素値を元に青が弱く赤が強い…