chevron_left

メインカテゴリーを選択しなおす

cancel
T_A_T
フォロー
住所
未設定
出身
未設定
ブログ村参加

2019/06/09

arrow_drop_down
  • フォルダ内の写真のファイル名を撮影時刻に変更する

    デジカメ等で写真を撮ると「DSC-1234」のように連番のファイル名が付きますが、「DSC-9999」の次は「DSC-0001」となるため、ファイルを連続処理する場合など少し面倒です。ファイルのEXIF情報から撮影時刻を取得し、ファイル名を撮影時刻に変更します。 関連記事 写真のexifから緯度・経度を取得する 準備 ファイル名を変更したい画像ファイル(デジカメで撮影した写真)3つを、jupyter notebookファイル(***.ipynb)と同じディレクトリにフォルダ'rename'を作成しその中に保存しました。 環境 windows10 home Anaconda 3/ jupyter…

  • 動画をキャプチャーしてタイムラプス動画を作成する

    動画をキャプチャーしてタイムラプス動画を作成します。ライブラリPyAutoGUIを使うとパソコン画面のスクリーンショットを取得できます。動画を再生しているパソコンのスクリーンショット画像を一定間隔で取得し、OpenCVで動画ファイルに書き込むことでタイムラプス動画を作成します。

  • WAVファイルのミキシング

    ライブラリpydubを使うことで音声ファイルを操作できます。ボーカルのみ、ピアノのみの2つのwavファイルを合成しボーカルに伴奏を付けます。 環境 windows10 home Jupyter notebook 6.4.11 Python 3.10.4 pydub 0.25.1 準備 ライブラリpydubをインストールします。 以下の2つのwavファイルを、jupyter notebookファイル(***.ipynb)と同じディレクトリに保存しました。vocal.wavはNEUTRINで生成した合成音声による歌、piano.wavは同じメロディラインをピアノで演奏したものです。 vocal.w…

  • Wikipedia-APIでWikipediaの記事を取得する

    ライブラリWikipedia-APIはWikipediaのAPIを簡単に制御できるラッパーで、これを使うとWikipediaの記事の要約や全文を短いコマンドで取得できます。 環境 windows10 home Jupyter notebook 6.4.11 Python 3.10.4 Wikipedia-API 0.5.4 準備 ライブラリWikipedia-APIをインストールします。 記事の要約(summry)を取得する場合。 コード まず、wikiという名前でwikipediaオブジェクトを生成し、その際言語として日本語を指定します('ja')。さらに記事のタイトル(ここでは「台風」)を…

  • Twitter APIでツイートを検索する

    Twitterはクレイピングが禁止されており、ツイートを検索する場合APIを使用します。tweepyはTwitter APIを使ってTwitterを操作するためのPythonライブラリで 利用者情報を入力したtweepy.Clientオブジェクトに対して.search_recent_tweets()メソッドを適用し、引数に検索ワードや件数を与えることで、最新ツイートが検索できます。

  • 近くのラーメン屋を探す

    近くのラーメン屋を探します。GeoJSのAPIによりIPアドレスから現在地の位置情報を取得します。取得した位置情報より、リクルートWebサービスが提供するHotpepperグルメサーチAPIを使って「現在地から2000m以内のラーメン屋」を検索します。

  • 喫煙できる店を検索する

    リクルートWebサービスが提供するHotpepperグルメサーチAPIを使って「北千住駅から300m以内で喫煙可能な店」を検索します。PythonのHTTP通信ライブラリrequestsによりホットペッパー Webサービスにアクセスし、検索クエリとして北千住駅の緯度・経度、距離(300m以内)、件数(50)を送信します。得られたレスポンスからnon_smokingフィールドの値を得て'全面禁煙'となっている店を除外して表示します。

  • 国旗の色比率を円グラフにする

    TBSのクイズ番組「東大王」で、国旗の色比率を円グラフにしたものを見て国旗を当てる、というクイズをやっていたのを見て同じようなグラフを作ってみました。

  • 徐々に画像がはっきりするgif動画

    画像が徐々にハッキリしていくgif動画を作ります。画像処理ライブラリPillowのeffect_spreadで画像をぼかすことができますが、そのぼかし具合を少しずつ減らすことで画像を徐々にハッキリさせます。 関連記事 少しずつ画像がはっきりする動画 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.8.8 Pillow 8.2.0 準備 以下の画像ファイルをフリー写真素材ぱくたそからダウンロードさせていただき、jupyter notebookファイル(***.ipynb)と同じディレクトリにファイル名'hongkong.…

  • パソコンの内蔵カメラで動画を撮る

    パソコンの内蔵カメラで動画を撮ります。Pythonの画像処理ライブラリOpenCVでパソコンのカメラ画像を取り込み動画化します。

  • 画像でモザイク画を作る

    PythonのライブラリOpenCVで画像を碁盤目状に分割し、それぞれのセルを色味の近い画像に置き換えてモザイク画を作ります

  • パソコンの画面を録画する

    パソコンの画面を録画して動画ファイルに保存します。ライブラリPyAutoGUIを使うとパソコン画面のスクリーンショットを取得できます。スクリーンショット画像を連続して取得し、OpenCVで動画ファイルに書き込むことで画面操作を録画します。PyAutoGUIのスクリーンショットではマウスカーソルが消えてしまうので 、PyAutoGUIでマウスの現在位置を取得しその位置にマウスカーソルの絵を描いています。 環境 windows10 home Anaconda 3/ jupyter notebook 6.4.6 Python 3.8.12 pyautogui 0.9.53 numpy 1.21.5 …

  • 動画を鉛筆画風に変換する

    動画を鉛筆画風に変換します。Pythonの画像処理ライブラリOpenCVのcv2.pencilSketchで動画の各フレームを鉛筆画風に変換し動画に保存しなおします。

  • 複数の動画に字幕を付けて1つの動画にまとめる

    フォルダ内の複数の動画に字幕を付けて1つの動画にまとめます。Pythonの画像処理ライブラリOpenCVで動画の読み出しと編集、書き出しを画像処理ライブラリPillowで字幕の書き込みを行います。

  • Yahooニュース・アクセスランキングの見出しを取得し合成音声で読み上げる(Windows)

    Yahooニュース・アクセスランキングの見出しをスクレイピングで取得し、それを合成音声で読み上げます。pywin32(win32com)はPythonからウィンドウズアプリケーションを制御するためのライブラリです。win32comでウィンドウズ標準の音声合成機能Microsoft Speech API(SAPI)を制御することで任意の文章を音声合成できます。

  • 動画を途中からスローモーションにする

    動画を途中からスローモーションにします。Pythonの画像処理ライブラリOpenCVで動画を読み出し、指定した時間以降で同じフレームを10コマ連続させて再び動画にすることでスローモーションにします。

  • 動画からサムネイルを作る

    動画から指定のフレームを切り出し文字を入れてサムネイルを作ります。動画ファイルを読み出しキャプチャーした画像の明度と彩度を強調し派手にしたうえで、縁取りの大きな文字で動画タイトルを入れます。画像のサイズをYoutube推奨カスタムサムネイルサイズの1280,x720にリサイズしてjpegで保存します。動画ファイルを読み出し、指定した秒数のフレームのキャプチャー、明度と彩度の強調は画像処理ライブラリOpenCVで行い、タイトル文字の描画とリサイズを画像処理ライブラリPillowで行います(OpenCVでは日本語を描画できないため)。 環境 windows10 home Anaconda 3/ j…

  • 画像を指定したサイズまで自動で圧縮する

    画像を指定のサイズになるまで自動で圧縮します。Pythonの画像処理ライブラリOpenCVでjpeg品質を指定して画像を保存し、狙いのサイズより大きければjpeg品質を下げて再び保存します。

  • 動画を明るく鮮やかにする

    動画を明るく鮮やかに変換します。Pythonの画像処理ライブラリOpenCVで動画の各フレームの彩度、明度に対してガンマ補正を行い強調することで明るく鮮やかに補正します。

  • フォルダ内の画像からスライドショーを作る(スワイプ切り替え)

    指定したフォルダ内の画像を読み出しスライドショーを作成します。Pythonの画像処理ライブラリPillowを使って画像のサイズ調整と次の画像が左からジ徐々に現れる効果を作りスライドショーにします。

  • フォルダ内の画像からスライドショーを作る(ブラックアウト、ホワイトアウト切り替え)

    指定したフォルダ内の画像を読み出しスライドショーを作成します。Pythonの画像処理ライブラリPillowを使って画像のサイズ調整と黒画像(白画像)を挟んで次の画像へ徐々に変化する効果を作りスライドショーにします。

  • フォルダ内の画像からスライドショーを作る(フェード切り替え)

    指定したフォルダ内の画像を読み出しスライドショーを作成します。Pythonの画像処理ライブラリPillowを使って画像のサイズ調整と次の画像へ徐々に変化する効果を作りスライドショーにします。

  • 動画をモノクロ映画っぽくする

    動画をモノクロ映画っぽくします。カラーの動画ファイルを読み出し各フレームをグレースケール変換して動画として保存します。画像処理ライブラリOpenCVで動画ファイルを読み出し、フレーム毎の画像をcv2.cvtColorでグレースケール変換しその画像をつなぎ合わせて動画にします。さらにコントラストを強調することでよりモノクロ映画っぽくします。 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.8.8 Pillow 8.2.0 OpenCV 4.0.1 準備 画像ファイルはMixkitの "Annoyed man yellin…

  • UFO動画を作る

    夜景の動画の空にUFOを追加します。動画ファイルを読み出して移動する楕円形を描画し再び動画として保存します。画像処理ライブラリOpenCVで動画ファイルを読み出し、フレーム毎の画像にcv2.ellipseで楕円形を描画し、その画像をつなぎ合わせてUFO動画にします。途中で楕円の動きを変化させUFOっぽくします。 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.8.8 Pillow 8.2.0 OpenCV 4.0.1 準備 画像ファイルはMixkitの "Fireworks in the beach"をダウンロードし3…

  • 行ったり来たりする動画を作る

    特定区間で逆再生-順再生を繰り返す動画を作ります。Pythonの画像処理ライブラリOpenCVで動画ファイルを読み出し、全フレームを画像としていったん保存します。その画像をつなぎ合わせて行ったり来たりする動画を作ります。

  • 動画にタイムコードを入れる

    動画ファイルを読み出し、動画の右下にタイムコードを入れて保存します。Pythonの画像処理ライブラリOpenCVで動画を読み出し、現在の時間とフレーム数からタイムコードを作成し動画に書き込みます。

  • ブログの検索順位を調べる

    ブログの検索順位を調べます。google検索の結果をスクレイピングしその中にこのブログ(Pythonでいろいろやってみる)が含まれているかを調べます。requestsで検索の実行および結果の取得を行い、beautifulsoup4で取得した結果(html)から必要な情報を取得し、urlにこのブログのドメイン(https://tat-pytone.hatenablog.com)が含まれているかどうかを調べます。 コードは【Webスクレイピング入門】Google検索の上位サイトを件数指定して表示する方法に掲載されているものを全面的に使わせていただきました。詳細な説明もあり大変参考になります。 関連…

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

    画像をマトリックス風に変換する について、「動画でやってみたら面白いのでは」とコメントいただいたので動画を映画「マトリックス」の仮想現実シーンのように変換するコードを作りました。動画から1コマずつ画像を取り込み、取り込んだ画像をエッジ検出、エッジ部分を反転した緑色のカタカナで置き換えます。作成した画像を再度動画に変換します。 関連記事 画像をマトリックス風に変換する アスキーアートを自動生成する 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.8.8 Pillow 8.2.0 OpenCV 4.0.1 準備 画像ファイ…

  • グリーンバックの人物を背景と合成する

    クロマキー合成では人の肌の色から遠いブルーやグリーンの背景を使って人物を撮影し、背景色の青や緑を透明にして別画像に合成します。 グリーンバックの人物写真から人物を切り抜いて風景写真に張り付けます。人物写真の人物部分を黒、グリーンの背景を白に変換したマスク画像を使ってPillowのImage.compositeにより風景画像の上に人物を合成します。 関連記事 コラージュ写真を作る コラージュ写真を作る 画像にキラキラした文字を入れる 環境 windows10 home jupyter notebook 6.3.0 Python 3.8.8 Pillow 8.2.0 準備 画像ファイルはフリー写真…

  • 複数の写真から検出した人物を切り抜いて並べる

    複数の写真から検出した人物を切り抜いて一つの画像に並べます。OpenCVの顔検出で顔の位置を特定しその上下左右を切り抜くことで人物を抽出します。顔検出はOpenCVに付属するHaar特徴ベースCascade型分類器による機械学習データ(検出器)のうち、正面の人の顔の機械学習データhaarcascade_frontalface_default.xmlを画像に適用することで行います。 関連記事 写真から顔検出をする(人間、猫) 顔にモザイクをかける まちまちなサイズの複数の画像をきれいに並べて一枚の画像にまとめる 使った関数・メソッド cv2.imread : 画像ファイルの読み出し cv2.Ca…

  • 電光掲示板のように文章が右から左にスクロールするGIFアニメを作成する

    電光掲示板のように文章が右から左にスクロールするGIFアニメを作成します。横長の画像に文章を書きその画像の一部を左から右に切り取りそれを順番に表示することでスクロールを表現します。 関連記事 画像を描画しアニメーションGIFを作成する 字幕がスクロールするGIFアニメを作成する 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.8.8 Pillow 8.2.0 コード from PIL import Image, ImageDraw, ImageFont # ImageDrawオブジェクトを生成し文字を描画 im = I…

  • 四角の中に円を充てんする

    四角の中に大きさの異なる円を重ならないようにできるだけ多く描画します。すでに描画した円の座標および半径をリストに記録しておいて、新しく描こうとする円と重ならないかをチェックし、重ならない場合描画します。これを繰り返し試行することで円の充てん率を上げます。 環境 windows10 home jupyter notebook 6.3.0 Python 3.8.8 OpenCV 4.0.1 コード import cv2 import numpy as np import random import math # 描画用の画像の作成 img = np.zeros((600, 600, 3), np.…

  • コラージュ写真を作る

    白バックの人物写真から人物を切り抜いて風景写真に張り付けます。人物写真を白黒変換し変換した画像をマスクにしてPillowのImage.compositeにより人物画像と風景画像を合成します。 関連記事 コラージュ写真を作る 画像にキラキラした文字を入れる 環境 windows10 home jupyter notebook 6.3.0 Python 3.8.8 Pillow 8.2.0 準備 画像ファイルはフリー写真素材ぱくたそから2つの画像をダウンロードさせていただき、jupyter notebookファイル(.ipynb)と同じディレクトリに、ファイル名'boy.jpg','easter.…

  • 画像にキラキラした文字を入れる

    画像にキラキラした文字を入れます。 PillowのImage.compositeを使うと2つの画像をマスク画像に応じて合成することができます。マスク画像が白黒の2色の場合、マスク画像の白い部分には1つ目の画像、マスク画像の黒い部分は2つ目の画像がコピーされ合成画像ができます。 マスク画像を白い文字で作り、1つ目の画像にキラキラの画像を使うことで白い文字の部分がキラキラに置き換わります。 関連記事 フォルダ内の画像ファイルにウォーターマーク(すかし)をつける 環境 windows10 home jupyter notebook 6.3.0 Python 3.8.8 Pillow 8.2.0 準備…

  • フォルダ内の画像ファイルにウォーターマーク(すかし)をつける

    フォルダ内の画像ファイルにウォーターマーク(すかし)をつけます。半透明のウォーターマークをつけるために元画像とウォーターマークをアルファブレンドします。 まずPillowで元画像をRGBA色空間に変換します。同じサイズのRGBA画像をA=0つまり透明で用意しその上にウォーターマークになる文字をAを255より小さく(すかして)描きます。2つの画像をアルファブレンドして透かし入り画像にします。 関連記事 日本語文字入り画像を作成する 環境 windows10 home jupyter notebook 6.3.0 Python 3.8.8 Pillow 8.2.0 準備 画像ファイルはフリー写真素…

  • 自民党総裁選候補者の主張から頻出単語を抽出し図示する

    自民党総裁選候補者4人の主張から頻出単語を抽出し図示します。出てくる名詞を出現回数順にランク付けし出現回数の多い単語を強調して図示することで各候補者の主張を浮かび上がらせます。 テキストファイルに保存した候補者の主張・政策を形態素解析器Janomeにて形態素解析し名詞を取り出します。そこから出現頻度の高い名詞20個を取り出し各候補者のキーワードとして図示します。その際、出現頻度が高い単語ほどフォントサイズを大きくし色もはっきりさせます。 関連記事 Janomeで形態素解析して形態素を登場回数順に並べる Yahooニュース・アクセスランキングの見出しを取得し頻出単語を調べる 環境 windows…

  • jupyter notebookのUIで画像の色味をインタラクティブに調整する

    ipywidgetsはjupyter notebookにUIを設置できるモジュールです。様々なガジェットを配置しそれらの入力に応じてコードの実行結果を変えることができます。 画像処理を行う際には、処理後の画像を見ながらパラメーターを調整したい場面が多く、ipywidgetsで入力値を調整しながら結果を見られると便利です。アジサイの写真のb,g,r各チャンネルのガンマ補正のγ値をスライダーにより変えてインタラクティブに色味を補正します。 Pystyle >> OpenCV – 画像の明るさ、コントラストの変更、ガンマ補正 のコードを改変して使わせていただきました。 関連記事 ルックアップテーブル…

  • 写真のノイズを消す

    写真のノイズを消します。暗い場所や高いISO感度などで撮影すると撮像素子の雑音に起因して写真にノイズが乗ってしまいます。OpenCVのノイズ除去機能fastNlMeansDenoisingColoredを使うことでノイズを低減できます。 環境 windows10 home jupyter notebook 6.3.0 Python 3.8.8 OpenCV 4.0.1 準備 次の画像ファイル'noise.jpg'をjupyter notebookファイルと同じディレクトリにコピーします。暗いところで高ISOで撮影したためノイズが乗ってザラザラしてします。 コード まずはblurによるぼかしを試…

  • 写真に写った余分なものを消去する

    写真に写った余分なものを消去します。OpenCVの修復機能inpaintにより画像の特定個所を消去します。inpaintは修復部分の周辺画像から修復部分を補完します。 環境 windows10 home jupyter notebook 6.3.0 Python 3.8.8 OpenCV 4.0.1 準備 次の画像ファイル'beach.jpg'(600x400)をjupyter notebookファイルと同じディレクトリにコピーします。左隅にカラスが写っているのでこれを消去します。 画像ファイルと同じサイズのマスク用画像'mask.jpg'を同じ場所に保存します。マスク画像は黒地で消去したい部…

  • アジサイの写真を明るく鮮やかにする

    アジサイの写真を明るく鮮やかにします。RGB色空間の画像を、色相(Hue)・彩度(Saturation)・明度(Value)からなるHSV色空間に変換し、OpenCVのLUT(ルックアップテーブルで)彩度(Saturation)・明度(Value)をガンマ補正することで鮮やかさと明るさを上げます。 関連記事 ルックアップテーブルによる画像コントラストの補正 ルックアップテーブルで画像の彩度、明度を調整する(画像を明るく鮮やかにする) 使った関数・メソッド cv2.imread : 画像ファイルの読み出し cv2.cvtColor : 色空間の変換 cv2.COLOR_BGR2HSV) : BG…

  • 図形をランダムな色で塗りつぶす

    輪郭で描かれている画像を自動で塗りつぶします。OpenCVの領域検出で図形を検出し、検出された領域の座標を使ってOpenCVのfillPolyで色を塗ります。 関連記事 回転を考慮した外接矩形を描画する 使った関数・メソッド cv2.imread : 画像ファイルの読み出し cv2.threshold : 画像の二値化 cv2.cv2.findContours : 領域検出 cv2.fillPoly : 多角形による塗りつぶし cv2.imwrite : 画像をファイルに保存 環境 windows10 home jupyter notebook 6.3.0 Python 3.8.8 OpenC…

  • 顔にモザイクをかける

    顔検出により写真に写っている顔にモザイク処理をします。OpenCVに付属するHaar特徴ベースCascade型分類器による機械学習データ(検出器)のうち、正面の人の顔の機械学習データhaarcascade_frontalface_default.xmlを画像に適用することで顔検出を行います。モザイク処理は顔部分を縮小→元のサイズに拡大することで行います。 関連記事 写真から顔検出をする(人間、猫) 画像のモザイク処理 使った関数・メソッド cv2.imread : 画像ファイルの読み出し cv2.CascadeClassifier : 学習データの読みだし cv2.CascadeClassif…

  • 写真をズームイン動画にする

    写真からズームインする動画を作ります。写真の四方をカットし任意の動画サイズにリサイズします。このカットの大きさを徐々に増やすことでズームインしているように見せます。 関連記事 画像を描画しアニメーションGIFを作成する 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 Pillow 5.2.0 準備 画像はフリー写真素材ぱくたそからダウンロードさせていただき、jupyter notebookファイル(***.ipynb)と同じディレクトリに保存しました。 ikari.jpg(幅6720px高さ4480px) コー…

  • 少しずつ画像が切り替わる動画

    ある画像から別の画像に少しずつ切り替わる(オーバーラップ)アニメーションを作ります。 画像処理にはライブラリPillowを用い、PIL.Image.blendメソッドで2つの画像を比率を変えてブレンドすることで少しずつ切り替わるように見せます。 関連記事 画像を描画しアニメーションGIFを作成する 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 Pillow 5.2.0 準備 切り替わる2つの画像はフリー写真素材ぱくたそからダウンロードさせていただき、jupyter notebookファイル(***.ipynb…

  • 図形が発光しているように見せる

    図形がネオンサインのように光を放っているように見せます。まず図形を描いてぼかし処理でにじませ、その上にもう一度同じ図形を描きます。図形の周りに同じ色のにじみを描くことで図形が発光しているように見えます。 使った関数・メソッド cv2.blur() : 画像のぼかし処理 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 OpenCV 4.0.0 コード 元の画像はこちらのコードで描きます。 import cv2 import numpy as np img = np.zeros((400, 600, 3), np.…

  • 画像を比較明合成する

    比較明合成は、複数の画像を比較して最も明るい画素を採用し合成画像を作成する手法です。同じ位置から撮影した星空やホタルの写真の合成に使われ、一枚だとわずかな光ですが合成することでそれぞれの写真の明るい部分(星やホタルの光)が集約され派手な写真にすることができます。 三脚に固定したカメラで夜の道路を長時間露光して撮影すると車のライトの光跡がレーザービームのように写ります。このレーザービーム写真を3枚比較明合成することで派手な写真にします。 使った関数・メソッド cv2.imread() : 画像ファイルの読み出し cv2.imwrite() : 画像の保存 cv2.cvtColor() : 色空間…

  • Jpeg画像のファイルサイズを小さくする

    Windowsで画像を圧縮(ファイルサイズを小さく)したい場合に、標準アプリだと簡単にできません。画像をサクッと圧縮できれば便利です。 OpenCVでJpen画像のサイズは元のまま、Jpeg画像のファイルサイズを小さくします。OpenCVのcv2.imread()メソッドでJpeg画像を読み出し、cv2.imwrite()メソッドで画像を保存しますが、保存の際にcv2.IMWRITE_JPEG_QUALITYフラッグを用いて、jpeg品質を指定します。この際に品質を小さくすればファイルサイズも小さくなります。 使った関数・メソッド cv2.imread() : 画像ファイルの読み出し cv2.…

  • 賢くなるパズル(KENKEN)を解く

    賢くなるパズル(KENKEN)は数字を使ったパズルの一種です。 例えば下図のような4x4のマトリックスにルールに従って1,2,3,4いずれかの数字を当てはめます。 数字を入れる際のルールは次の2つです。 ①縦横に同じ数字を入れない ②太線で囲われた枠の数字をあらかじめ描かれた加減乗除の記号で計算した結果が、あらかじめ描かれた数字になる 上の図の左上のように2つの枠が太線で囲われていて、あらかじめ左上に「1-」と書かれている場合には「2つの数字を引いた結果が1となる」という意味で、例えば2と1、4と3などが入ります。数字の順番は問われません(1,2でも良い)。 フリー百科事典『ウィキペディア(W…

  • 充填ジュリア集合を描画する

    充填ジュリア集合は漸化式 で定義される複素数列で、n→∞の極限において無限大に発散しないという条件を満たす複素数z0の集合を指します。 フリー百科事典『ウィキペディア(Wikipedia)』>>充填ジュリア集合 マンデルブロ集合と同じ漸化式による定義ですが、マンデルブロ集合がz0を固定しcを複素平面上で変えた場合の集合なのに対して、ジュリア集合はcを固定しz0を複素平面上で変えた場合の集合となります。cを適切な値に設定することで美しい図形を描画できます。 充填ジュリア集合を求めるプログラムは複素平面において、各点cに対する漸化式を計算し発散するか収束するかで判定します。あらかじめ設定した回数ま…

  • マンデルブロ集合を描画する

    マンデルブロ集合は漸化式 で定義される複素数列で、n→∞の極限において無限大に発散しないという条件を満たす複素数cの集合を指します。 フリー百科事典『ウィキペディア(Wikipedia)』>>マンデルブロ集合 シンプルな定義にも関わらず、マンデルブロ集合を複素平面上に図示することで複雑で美しいフラクタル図形を描画できます。 マンデルブロ集合を求めるプログラムは複素平面において、各点cに対する漸化式を計算し発散するか収束するかで判定します。あらかじめ設定した回数まで漸化式を計算しznがある閾値を越える場合には発散と判定、閾値を越えない場合には収束(マンデルブロ集合)と判定します。 環境 wind…

  • 画像をセピア色に変換する(グレースケール画像を赤く補正する)

    画像をセピア色に変換します。 セピア色への変換にはいくつか手法がありますが、ここではカラー画像をグレースケール変換しその輝度を元に下の式のように赤を強く青を弱く補正します。 B(青):グレースケールの輝度 × 145 G(緑):グレースケールの輝度 × 200 R(赤):グレースケールの輝度 × 240 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 OpenCV 4.0.0 準備 画像ファイルはフリー写真素材ぱくたそからダウンロードさせていただき、jupyter notebookファイル(***.ipynb)…

  • ルックアップテーブルで画像の色味を調整する(B,G,Rチャンネルを個別に補正する)

    ルックアップテーブルにより画像のB(青),G(緑),R(赤)チャンネルを個別に補正し画像の色味を調整します。 BGR3チャンネルからなる画像をcv2.split()メソッドにより3つのチャンネルに分割しいずれかのチャンネルのみに補正を行います。あらかじめガンマカーブを納めたルックアップテーブルを用意しcv2.LUT()メソッドにより各画素にルックアップテーブルを適用、特定のチャンネルのガンマ補正を行います。 用いたガンマカーブ(gamma=2)は以下のプロファイルです。補正後の値は補正前に対して全体的に高くなります。 関連記事 ルックアップテーブルで画像の彩度、明度を調整する(画像を明るく鮮や…

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

    画像を明るく鮮やかにします。 画像をBGR(青緑赤)の3チャンネルからなるBGR色空間から色相(Hue)、彩度(Saturation)、明度(Value)からなるHSV色空間に変換し、彩度H・明度Vを補正します。補正にはガンマカーブを用いて彩度・明度を全体的に大きくします。あらかじめガンマカーブを納めたルックアップテーブルを用意しcv2.LUT()メソッドにより各画素にルックアップテーブルを適用、彩度・明度のガンマ補正を行います。 画像処理ライブラリOpenCVでは彩度(Saturation)は[0,255],明度(Value)は[0,255]の範囲を取ります。ガンマ補正により値が小さい程高い…

  • モンテカルロ法で円周率を求める

    モンテカルロ法で円周率を求めます。 モンテカルロ法はシミュレーションや数値計算を乱数を用いて行う手法の総称です。 図のように一辺がrの正方形とそれに内接する半径rの4分割円があり、その正方形の中にランダムに点を打ちます。すべての点の数(青い点と赤い点の合計)と4分割円の中の点の数(青い点)から、4分割円の面積が 4分割円の面積 = 4分割円の中の点の数 ÷ すべての点の数 × 正方形の面積( r × r ) と近似されます。4分割円の面積は円周率をπとすると 4分割円の面積 = π × r × r ÷ 4 となり、以上より 4分割円の中の点の数 ÷ すべての点の数 × 正方形の面積( r × …

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

    傾いたお札が写った写真を、お札が水平になるように自動で回転します。 ライブラリopencvのcv2.findContours()メソッドの領域検出機能によりお札の領域を検出、cv2.minAreaRect()メソッドにより回転外接矩形を求め、戻り値の回転角を使って、お札が水平になるように画像全体を回転します。 関連記事 回転を考慮した外接矩形を描画する 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 OpenCV 4.0.0 準備 5000円札が傾いて写っている写真を用意し、jupyter notebookファ…

  • ランダムウォークによる感染シミュレーション

    ランダムウォークは確率的な運動モデルの一種で、次にどちらにどれくらい動くかを確率的に決めるため不規則な挙動を示します。これを利用し人の行動のシミュレーションに用いることが可能です。 ここでは2次元のランダムウォークモデルで感染の広がりのシミュレーションを行います。ある領域に50人の人間がいて一人だけ感染症に掛かっています。1ステップ毎に50人はx,y方向それぞれにランダムな距離移動します。移動後に感染者と一定の距離以内にいる人は感染してしまいます。これをある時間ステップ繰り返したときにどれほど感染症が広まるかをシミュレートします。1ステップの移動距離が小さい場合と1ステップの移動距離が大きい場…

  • エクセルファイルを新規作成、データを入力しグラフを作成する

    openpyxlはエクセルファイル操作用のライブラリで、ワークブックの生成や読み書き、データ入力、グラフ作成などの機能があります。エクセルを立ち上げずに各種操作を行うため、エクセルがインストールされていない環境でもエクセルファイルが作成できます。 ここでは新規ワークブックを作成し、A列にΘ、B列にsin(Θ)を入力、Θ vs sin(Θ)の散布図、つまりサインカーブを作成しワークブックを保存します。 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 openpyxl 3.0.5 コード Workbook()メソッ…

  • 新型コロナ陽性者数のアニメーショングラフを作成する

    国内の新型コロナ陽性者数のアニメーショングラフを作成します。通常グラフ作成はmatplotlibを用いますが体裁を整えるのが結構手間だったりします。ここではpilowで画像としてグラフを作成します。一日ごと感染者数を棒グラフ表示するgifアニメーションを作成します。 関連記事 画像を描画しアニメーションGIFを作成する 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 Pillow 5.2.0 準備 陽性者数のデータとして厚生労働省オープンデータに掲載されている陽性者数のcsvファイル'pcr_positive_…

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

    四角形と三角形が混在する画像から、三角形のみを抽出します。 opencvのcv2.findContours関数で領域を抽出、cv2.approxPolyDP関数で輪郭の近似図形を求め、近似図形が三角形(頂点の数が3)の場合に輪郭を縁どります。 関連記事 円の数を数える 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 OpenCV 4.0.0 準備 以下のコードでランダムな向きと大きさの三角形と四角形の混在した画像(figures.png)を生成します。 import cv2 import random impo…

  • 画像が回転する動画

    画像を回転させて動画(GIFアニメ)を作ります。 画像処理にはライブラリPillowのImageモジュールを用い、rotateメソッドにより画像を回転、cropメソッドで画像の中央の部分を切り抜きます。回転角度を変えながら画像を生成しGIFアニメにします。 関連記事 画像を描画しアニメーションGIFを作成する 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 Pillow 5.2.0 準備 画像ファイルはフリー写真素材ぱくたそからダウンロードさせていただき、jupyter notebookファイル(***.ipy…

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

    ぼやけた画像からはっきりした画像へと少しずつ変化する動画を作成します。 画像処理にはライブラリPillowを用い、ぼかし方として ①モザイク処理 ②Blur処理 の2つを用いて、時間と共にぼかしを弱くするGIFアニメーションを作成します。 関連記事 画像を描画しアニメーションGIFを作成する 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 Pillow 5.2.0 準備 画像ファイルはフリー写真素材ぱくたそからダウンロードさせていただき、jupyter notebookファイル(***.ipynb)と同じディレ…

  • 複素関数を視覚化する

    複素関数を視覚化します。 複素数 z=a+bi を用いた複素関数 f(z)において、実部 a、虚部 b に対して偏角 arg z および 絶対値 r が決まります。これら4つのパラメータを図示するために実部 a をx軸、虚部 b をy軸とした2次元グラフに、偏角 arg z を対応する色相、絶対値 r を対応する明度もしくは彩度でプロットする方法があります。 ここでは絶対にについては図示せず偏角を色相表示します。色相はopencvのHSV色空間の色相Hを用い、一周分の偏角に色相0~179を対応させます。 環境 windows10 home Anaconda 3/ jupyter not…

  • 倍プッシュのシミュレーション

    ギャンブルで負けた時に賭け金を倍にして取り返そうとする「倍プッシュ」という賭け方があります。倍々に賭けていけばその内いつか勝って負けを取り戻せるように思えますが、手持ちの資金が無くなったら終わりなので大負けする可能性もあります。以下のルールで「倍プッシュ」にどのくらいの可能性があるのかをシミュレートします。 設定した金額を賭ける 勝つ確率は1/2 勝った場合は賭け金が戻った上で賭け金と同額がもらえる。負けた場合は賭け金を失う。 勝った場合も負けた場合も前回の倍の金額を賭ける 目標額に達成した場合または次の賭け金が払えなくなった場合終了 環境 windows10 home Anaconda 3/…

  • ランダムウォーク

    ランダムウォークは確率的な運動モデルの一種で、次にどちらに動くかを確率的に決めるため不規則な挙動を示します。 ここでは2次元のランダムウォークモデルとして、一ステップ毎に上下左右4方向に一定距離ランダムに移動する場合を考えます。ステップ数を10、100、1000、10000と変え各ステップで100回試行し、移動後の位置の分布を比べます。移動方向がランダムなのでステップ数が多くなると上下左右の出現数が収束し各方向への移動距離が均等化され、スタート位置に戻ってきそうですが実際はそうはならず、ステップ数が多い程、移動後の位置は広く分布します。 環境 windows10 home Anaconda 3…

  • いろいろならせんを描く

    5種類のらせんを描画します。Θとrを用いた極座標平面で以下の式で表されます。 (1) アルキメデスのらせん(等間隔) (2) 放物らせん(外側に行くほど間隔が狭くなる) (3) 双曲らせん(y=aを漸近線に持つらせん) (4) リチュース(Θが大きくなるにつれ原点に近づくらせん) (5) 対数らせん(等角螺旋) 以上の式を用いてΘを変えた際のrを求め、以下式によりΘとrの極座標からx,yの平面座標への変換します。 ただし描画に用いているopencvの座標系は画面の下向きがyが正、画面の上向きがyが負で平面座標のyと符号が逆なため、上記式で求めたyに-1を掛けています。 求めた座標にopencv…

  • セル・オートマトンによる感染シミュレーション

    セル・オートマトン格子状のセルと単純な規則による離散的計算モデルで、あるセルの時間tにおける状態、および近傍セルの時間tにおける状態により、あるセルの時間t+1(次世代)における状態が決まります。ルールを確定的ではなく確率的に変えた確率的セルオートマンを用いることで感染症の広がりをシミュレーションできます。すなわち「隣のセルが感染者の場合の感染確率をxとする」といったルールを設けることでt→t+1(現世代→次世代)での感染の広まりを計算することができます。 具体的な計算手順は - 現世代の状態を記録する配列変数を用意し初期状態を記録する。 - 初期状態の全セルと隣接セルの状態を確認し、それを元…

  • 素数を求める(エラトステネスのふるい)

    エラトステネスの篩は指定された整数以下の全ての素数を発見するための単純なアルゴリズムで、 以下のステップからなります。 ステップ 1 探索リストに2からxまでの整数を昇順で入れる ステップ 2 探索リストの先頭の数を素数リストに移動し、その倍数を探索リストから篩い落とす。 ステップ 3 上記の篩い落とし操作を探索リストの先頭値がxの平方根に達するまで行う。 ステップ 4 探索リストに残った数を素数リストに移動して処理終了。 この手順により1000以下の全ての素数を求めます。 関連記事 素数を求める(試し割り法) 環境 windows10 home Anaconda 3/ jupyter not…

  • 素数を求める(試し割り法)

    試し割り法は素数を求める手法で、nが素数であるかどうかを調べる場合nよりも小さい数で割って割り切れるかどうか調べるシンプルなアルゴリズムです。試し割り法により任意の数までの素数を求めます。単純なアルゴリズムですがより効率化するポイントとして √nまでの数を調べれば十分 小さい数の方が割れる確率が高いため小さい数から調べた方が良い があります。 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 コード n = 1000として1000までの素数を求めます。 import math n = 1000 prime_num…

  • ブラシ状の線を描く

    ブラシ状の線を描きます。中心を濃く外ほど薄くドットを描くことでブラシで描画したように見せます。濃淡をつけるためにガウス分布の乱数を生成するrandom.gaussモジュールを用いてドットの座標を計算します。 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 OpenCV 4.0.0 コード モジュールrandom.gaussにより平均0のガウス分布を生成しそれを距離r、random.uniformにより0~2πの均等な分布を生成し角度Θとし、極座標r、Θから直行座標に変換、該当するドットの色を変換します。これを(…

  • リサージュ曲線を描く

    リサージュ曲線は直行した2つの単振動の合成による平面図形で tを介した媒介表示変数表示では x = Acos(at) y = Bcos(bt+δ) と表されます。 振幅の係数A,B、周波数の係数a,b、位相差δによりさまざまな図形が現れます。 A,Bを等しく、δを0としてa,bを変えた場合の図形を描きます。 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 OpenCV 4.0.0 a = b = 1 の場合。円となります。tは0~2πまで1000分割しています。 コード import math import n…

  • SIRモデルによる感染シミュレーション(一度低下した感染率が再上昇する場合)

    SIRモデルによる感染シミュレーション で作成したプログラムを使って、ロックダウンや外出制限などで一度感染率が低下、その後ロックダウンが解除され感染率が上昇した場合のSIRモデルによる感染者数シミュレーションを行います。 SIRモデル(エスアイアールモデル)は、感染症の短期的な流行過程を決定論的に記述する古典的なモデル方程式である。(ウィキペディア SIRモデル より) Susceptible 感染症への免疫がない人々 Infected 感染症に現在かかっている人々 Recovered 感染症から回復して感染症への免疫が生じた人々 の3項目について時間変化を計算するモデルで 時間が t から …

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

    画像を映画「マトリックス」の仮想現実シーンのように変換します。反転した緑色のカタカナで表現された印象的なシーンをまねします。 変換する画像をエッジ検出しエッジ部分を反転した緑色のカタカナで置き換えます。 関連記事 アスキーアートを自動生成する 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 Pillow 5.2.0 OpenCV 4.0.0 準備 画像ファイルはフリー写真素材ぱくたそからダウンロードさせていただき、jupyter notebookファイル(***.ipynb)と同じディレクトリにファイル名’ha…

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

    サイズがまちまちな複数の画像をきれいに並べて一枚の画像にし、画像の一覧を作成します。 フォルダ内の画像を2枚ずつ高さを揃えて並べ、それを繰り返すことで、フォルダ内の全ての画像を幅の決まった一枚の画像にします。 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 OpenCV 4.0.0 準備 画像ファイルはフリー写真素材ぱくたそから7枚の画像をダウンロードさせていただき、jupyter notebookファイル(***.ipynb)と同じディレクトリにフォルダ'images'を作りその中に保存しました。 サイズ、ア…

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

    2枚の写真を斜めにカットして貼り合わせます。pythonの画像処理ライブラリPillowのcompositeメソッドを使い、2枚の写真とマスク画像により合成画像を作成します。 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 Pillow 5.2.0 準備 画像ファイルはフリー写真素材ぱくたそからダウンロードさせていただき、jupyter notebookファイル(***.ipynb)と同じディレクトリに保存しました(画像サイズは2枚とも600x375)。 man.jpg woman.jpg コード 合成する2枚…

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

    星のベクター画像を作成します。 ドットの集合である普通の画像(ラスター画像)と異なり、ベクター画像は線や円といったオブジェクトの集合として記述されており、拡大縮小してもギザギザになったりせず画像の質が変わらない特徴があります。 ベクターファイルの生成にはライブラリsvgwriteを用います。このライブラリを使うことでベクター画像の一種であるsvgファイルが生成できます。 関連記事 星を描く 青海波のベクター画像を作成する 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 svgwrite 1.4 コード 多角形を…

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

    日本の伝統的な文様である青海波のベクター画像を作成します。 ドットの集合である普通の画像(ラスター画像)と異なり、ベクター画像は線や円といったオブジェクトの集合として記述されており、拡大縮小してもギザギザになったりせず画像の質が変わらない特徴があります。 ベクターファイルの生成にはライブラリsvgwriteを用います。このライブラリを使うことでベクター画像の一種であるsvgファイルが生成できます。 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 svgwrite 1.4 コード import svgwrite …

  • 星を描く

    pythonの画像処理ライブラリPillowを使って星を描きます 指定した位置、回転角度、頂点とへこみの直径比、色で、ImageDrawモジュールのpolygonメソッドで星を描きます 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 Pillow 7.1.2 コード (x,y)=(200,200) 、辺の長さ100,角度0°、頂点とへこみの比0.5、黄色で星を描画。 import numpy as np from PIL import Image, ImageDraw img_size_x = 400 img_…

  • HTMLタグを自動で付ける

    HTMLタグを略字で書いておいて、タグに置き換えます。 例えば H → <h2> S → <span style="color:red"> のような変換の組み合わせをあらかじめ決めておいて読み出したテキストファイルの略字をタグに置換します。 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 準備 以下の内容のテキストファイルをjupyter notebookファイル(***.ipynb)と同じディレクトリにファイル名'index.txt'で保存しました H T HTMLタグを自動で付ける t h H2 タグに変換…

  • 画像を左右反転して貼る

    pythonの画像処理ライブラリPillowを使って画像を左右反転し元画像と合算し一枚の画像にします。 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 Pillow 5.2.0 準備 画像ファイルはフリー写真素材ぱくたそからダウンロードさせていただき、jupyter notebookファイル(***.ipynb)と同じディレクトリにファイル名'light.jpg'で保存しました(使用した画像サイズは300x200)。 コード 元画像を左右反転した画像を作り、貼り付け用に生成した白画像に元画像と左右反転画像を並べ…

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

    pythonの画像処理ライブラリPillowを使って画像の一部を切り抜いて繰り返し貼ります。 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 Pillow 5.2.0 準備 画像ファイルはフリー写真素材ぱくたそからダウンロードさせていただき、jupyter notebookファイル(***.ipynb)と同じディレクトリにファイル名'girl.jpg'で保存しました(使用した画像サイズは600x400)。 コード 元画像から女の子の部分を長方形に切り抜き、貼り付け用に生成した白画像に4枚並べて貼ります。 fro…

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

    Pillowの画像強調を行うImageEnhanceモジュールで画像のシャープネス(輪郭の強調度合)を変えます。 enhancer = ImageEnhance.Sharpness(image) の形式で画像imageに対してmageEnhance.Sharpnessメソッドを適用したenhancerオブジェクトを生成し enhancer.enhance(factor) の形式でenhancerオブジェクトに対してenhanceメソッドを適用します。factorは強調度合を示し1.0が元画像と同じ、それより値が大きいほど強調され小さいほど控えめになります。 関連記事 特定チャンネルをガンマ補正…

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

    Pillowの画像強調を行うImageEnhanceモジュールで画像のブライトネス(明るさ)を変えます。 enhancer = ImageEnhance.Brightness(image) の形式で画像imageに対してmageEnhance.Brightnessメソッドを適用したenhancerオブジェクトを生成し enhancer.enhance(factor) の形式でenhancerオブジェクトに対してenhanceメソッドを適用します。factorは強調度合を示し1.0が元画像と同じ、それより値が大きいほど強調され小さいほど控えめになります。 関連記事 特定チャンネルをガンマ補正し画…

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

    Pillowの画像強調を行うImageEnhanceモジュールで画像のコントラストを変えます。 enhancer = ImageEnhance.Contrast(image) の形式で画像imageに対してmageEnhance.Contrastメソッドを適用したenhancerオブジェクトを生成し enhancer.enhance(factor) の形式でenhancerオブジェクトに対してenhanceメソッドを適用します。factorは強調度合を示し1.0が元画像と同じ、それより値が大きいほど強調され小さいほど控えめになります。 関連記事 特定チャンネルをガンマ補正し画像の色味を変える …

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

    Pillowの画像強調を行うImageEnhanceモジュールで画像の鮮やかさを変えます。 enhancer = ImageEnhance.Color(image) の形式で画像imageに対してmageEnhance.Colorメソッドを適用したenhancerオブジェクトを生成し enhancer.enhance(factor) の形式でenhancerオブジェクトに対してenhanceメソッドを適用します。factorは強調度合を示し1.0が元画像と同じ、それより値が大きいほど強調され小さいほど控えめになります。 関連記事 特定チャンネルをガンマ補正し画像の色味を変える 風景写真をクッキ…

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

    風景写真より鮮やかに変換します。草むらと空を写した写真で草むらの緑をより鮮やかに、空の青さをより強く変換します。 関連記事 特定チャンネルをガンマ補正し画像の色味を変える 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 OpenCV 4.0.0 準備 変換する画像をjupyter notebookファイル(***.ipynb)と同じディレクトリにファイル名'image.jpg'で保存しました。 コード 画像の空のある部分の輝度を確認すると、B(青)G(緑)R(赤) = 254, 212, 137 となっておりB…

  • SIRモデルによる感染シミュレーション

    SIRモデルを使った簡単な感染シミュレーションを行います(現実のコロナウイルスの状況やロックダウンの状況とはリンクしていません) 。 SIRモデル(エスアイアールモデル)は、感染症の短期的な流行過程を決定論的に記述する古典的なモデル方程式である。(ウィキペディア SIRモデル より) Susceptible 感染症への免疫がない人々 Infected 感染症に現在かかっている人々 Recovered 感染症から回復して感染症への免疫が生じた人々 の3項目について時間変化を計算するモデルで 時間が t から t+1 へ経過した際のそれぞれの増減を以下式で計算します。 S(t+1) - S(t) …

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

    下地が白い画像を貼ると境界が分からないので枠線を付けたくなりますが手動ではうまいやり方がありません。そこでフォルダ内のすべての画像に指定した色で枠線を付けます。 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 Pillow 5.2.0 準備 画像ファイルはいらすとやからダウンロードさせていただき、jupyter notebookファイル(***.ipynb)と同じディレクトリの内に'photo'フォルダを作りその中に保存しました。 コード import os from PIL import Image, Ima…

  • プレゼン資料を自動生成する

    プレゼン資料(pdfファイル)を自動生成します。表示したいテキストおよび画像ファイル名を決めておくと、あらかじめ決められたレイアウトに配置してプレゼン資料ができるようにします。 以下のレイアウトとして、タイトル、サブタイトル、日付・所属、見出し、本文はテキストをコード中に記入、ロゴ、図2つは配置したい画像ファイル名をコード中に記入し、本文は自動で改行、図は自動で大きさ調整し配置されます。 表紙スライド(1枚) ロゴ タイトル サブタイトル 日付・所属 本文スライド(任意の枚数) ロゴ 見出し 本文 図2つ また、pdfファイル生成にはモジュールreportlabを使用しています。 環境 win…

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

    画像をテキストで置き換えるいわゆるアスキーアートを自動生成します。変換したい画像と使用する文字列を与えると、画像の濃いところは画数の多い字で薄いところは画数の少ない字で置き換えることで濃淡を表現します。ただし画数情報はわからないので、文字列の字を一文字ずつ画像に変換して濃さ(輝度)を測定して画数の代わりに使用しています。 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 Pillow 5.2.0 準備 画像ファイルはフリー写真素材ぱくたそからダウンロードさせていただき、jupyter notebookファイル(*…

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

    文字が浮かび上がるGIFアニメを作ります。黒バックに文字の色を黒→白に少しずつ変えています。 関連記事 字幕がスクロールするGIFアニメを作成する ルパン三世タイトル画面風GIFアニメーションを作る 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 Pillow 5.2.0 コード from PIL import Image, ImageDraw, ImageFont text = '意味のない質問だよ' # 表示する文字列 font = ImageFont.truetype('C:\Windows\Fonts\…

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

    スターウォーズのオープニング画面のように、画面の下からテキストが現れ上に移動するGIFアニメを作成します。折り返したテキストの描画開始位置を少しずつ変えることでスクロール効果を表現します。 関連記事 画像を描画しアニメーションGIFを作成する テキストを折り返し画像に収まるように表示する 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 Pillow 5.2.0 コード from PIL import Image, ImageDraw, ImageFont import textwrap images =[] #…

  • ディープラーニングで近藤春菜、角野卓三、マイケルムーアを判別する(Kerasで画像分類)

    ライブラリKerasを用い、ディープラーニングの1手法であるCNN(畳み込みニューラルネットワーク)による画像分類を行います。 Kerasはディープラーニングのライブラリであるtensorflowのラッパーです。tensorflowの記述は難易度が高いですがKerasを用いると簡単な記述でディープラーニングを実行できます。 近藤春菜、角野卓三、マイケルムーアの画像を学習させ3者を分類できるか試します。 準備 jupyter notebookファイル(***.ipynb)と同じディレクトリに、フォルダ'keras_image'を作成、さらにその中にフォルダ'Haruna','Takuzo','M…

  • VGG16を用いた画像分類

    画像のディープラーニング学習済みモデルVGG16を用いて画像の分類を行います。VGG16は140万個のラベル付き画像と1000種類のクラスからなるImageNetデータセットを用いたCNN(畳み込みニューラルネットワーク)学習済みモデルです。自分でディープラーニング学習済みモデルを作成するには大量の画像データと多くの時間が必要ですが、既存の学習済みモデルを用いることで簡単に画像分類が可能になります。 ライブラリKeras上でVGG16モデルを用いて画像分類を行います。Kerasはディープラーニングのライブラリであるtensorflowのラッパーです。tensorflowの記述は難易度が高いです…

  • 形状の異なる数字画像を大量に生成する

    機械学習を行うためには大量の学習データが必要になります。0-9の10個の数字画像を大量に生成します。以下のパラメータを変えた32x32pxの画像を4320個生成しpngファイルで保存します。 数字(0-9)・・・10 フォント・・・8 文字のx位置・・・3 文字のy位置・・・3 回転角度・・・3 ぼかし処理・・・2 10 x 8 x 3 x 3 x 3 x 2 = 4320個 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 OpenCV 4.0.0 準備 生成した画像データ保存用フォルダ'number_gene…

  • ヒストグラム平坦化・コントラスト制限付適応ヒストグラム平坦化によるカラー画像のコントラスト補正

    明るい画像では明度の分布は明るい方に集中しており、暗い画像では明度は暗い方に集中しています。この明度の分布(ヒストグラム)を広げて明るさをまんべんなくする方法がヒストグラム平坦化で、画像のコントラスト調整ができます。 OpenCVではメソッドcv2.equalizeHist()を使うことで実現可能です。引数となるヒストグラムにはHSV色空間のV(Value)・明度を用い、明度のヒストグラムを平坦化します。 画像が全体的に明るい場合や全体的に暗い場合はヒストグラムが特定の範囲に偏っているため平坦化(ヒストグラムを広げる)が有効ですが、元の画像のヒストグラムが特定の範囲に偏っていないなど、ヒストグ…

  • K-means(K平均法)で花の写真を色でクラスタリングする(全画素を特徴量に使う)

    K-means(K平均法)で花の写真を色でクラスタリングする では画面全体のBGRの比率を特徴量として用いましたが、画面全画素のBGR値をそのまま特徴量に用いてクラスタリングをします。 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 OpenCV 4.0.0 準備 画像ファイルはフリー写真素材ぱくたそから花の写真25枚をダウンロードさせていただき、jupyter notebookファイル(***.ipynb)と同じディレクトリに、'flowers2'ディレクトリを作成しそこに保存しました。画像は64px X 6…

  • K-means(K平均法)で花の写真を色でクラスタリングする

    K-Meansクラスタリングは、与えられたデータを自動的に分類するアルゴリズムであるクラスタリングの一種で、クラスタの平均を用い、与えられたクラスタ数k個に分類する手法です。(Wikipedia >> k平均法) cv2.kmeans()を用いるとK-Meansクラスタリングが簡単に実装できます。 様々な色の花の写真を色に応じてクラスタリングします。写真全体のBGR各チャンネルの比率を特徴量として(特徴量3つ)、クラスタリングを行い、それぞれのクラスタ別にフォルダを作り画像ファイルを移動します。 関連記事 K-Meansクラスタリングによる画像の減色 環境 windows10 home Ana…

  • ライブラリqrcodeでQRコードを生成する

    ライブラリqrcodeを使うことでQRコード(2次元バーコード)がPythonで簡単に作成できます。 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 qrcode 6.1 Pillow 5.2.0 準備 ライブラリqrcodeをAnaconda Promptよりインストールします。 pip install qrcode コード この記事のurlをQRコードに変換します。 import qrcode from PIL import Image img = qrcode.make('https://tat-pyto…

  • TF-IDFとコサイン類似度により文書の類似度を判定する

    文書の類似度を調べます。関連文献の調査などで「自動で似ている文書を探してくれれば楽なのに」と思うことがありますが、類似度が求められれば自動化の可能性が出てきます。 TF-IDFは文書中に含まれる単語の重要度を評価する手法の1つであり、情報検索などに利用されています。TF(Term Frequency、単語の出現頻度)はそのまま出現頻度を示し、IDF(Inverse Document Frequency、逆文書頻度)は、単語がある文書だけでに現れるのか、多くの文書に現れるのかといった希少度を現します。 TF-IDFはTFとIDFの積であり、出現頻度が大きく(TF大)、特定の文書において現れる(I…

  • word2vecでコパアメリカ 日本vsチリ戦の敗因を分析する

    word2vecでコパアメリカ 日本vsチリ戦の敗因を分析します。word2vecは文章中の単語をベクトル化する技術で、関連する単語の抽出や単語同士の類似度を調べたり単語の線形計算ができるようになります。ベクトル化処理をするためには単語の区切りを示す必要があるため、先に文章を分かち書きします。手順は以下の通りです。 形態素解析ライブラリJanomeで形態素解析、分かち書き 自然言語処理ライブラリgensimでword2vecを実行しモデルファイルを作成、 自然言語処理ライブラリgensimでword2vecを実行し類似単語の抽出 関連記事 word2vecにより単語をベクトル化し類似語検索をす…

arrow_drop_down

ブログリーダー」を活用して、T_A_Tさんをフォローしませんか?

ハンドル名
T_A_Tさん
ブログタイトル
Pythonでいろいろやってみる
フォロー
Pythonでいろいろやってみる

にほんブログ村 カテゴリー一覧

商用