searchカテゴリー選択
chevron_left

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

カテゴリーのご意見・ご要望はこちら
cancel
プロフィール
PROFILE

T_A_Tさんのプロフィール

住所
未設定
出身
未設定

自由文未設定

ブログタイトル
Pythonでいろいろやってみる
ブログURL
https://tat-pytone.hatenablog.com/
ブログ紹介文
Pythonを使った画像処理や機械学習などの簡単なプログラムを載せています
更新頻度(1年)

33回 / 365日(平均0.6回/週)

ブログ村参加:2019/06/09

本日のランキング(IN)
読者になる

新機能の「ブログリーダー」を活用して、T_A_Tさんの読者になりませんか?

ハンドル名
T_A_Tさん
ブログタイトル
Pythonでいろいろやってみる
更新頻度
33回 / 365日(平均0.6回/週)
読者になる
Pythonでいろいろやってみる

T_A_Tさんの新着記事

1件〜30件

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

    四角形と三角形が混在する画像から、三角形のみを抽出します。 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…

カテゴリー一覧
商用