Pythonでいろいろやってみる

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

2019-04-01から1ヶ月間の記事一覧

国旗判定器で国旗を判定してみる

国旗判定器を作る、で判定ファイル作成に用いた画像で判定がうまくいくことを確認しましたが、他の画像でうまく判定できるか試します。判定用リストファイル、判定コードはそのままです。 次の3つの画像で試します。 (1)いらすとやから入手したフランス国旗…

国旗判定器を作る

国旗の判別器を作ります。あらかじめいくつかの国旗画像についてBGR各チャンネルの輝度の比率を求めたデータ(判定用リスト)を作成しておいて、それと比較することでどこの国旗かを判別します。 判定用リストのBGR比率(添え字c)と判定したい画像のBGR比率(添…

鳥取砂丘に地上絵を描く

鳥取砂丘の空撮画像に猫の地上絵を書きます。猫のイラストからエッジ検出し、エッジをぼかして地上絵の画像を作成、鳥取砂丘の画像と合成します。 使った関数・メソッド cv2.imread() : 画像ファイルの読み出し cv2.Canny() : Canny法によるエッジ検出 cv2.c…

円周率一万桁に0~9がそれぞれ何個含まれるか調べる

円周率一万桁に0~9がそれぞれ何個含まれるか調べます。 こちらのサイト(円周率.jp >> 円周率の値 1万桁まで)から円周率1万桁をスクレイピングで取得し、.count()メソッドで各数字の出現回数を求めます。 使った関数 requests.get() : Responseオブジェクト…

航空写真を加工し地形に穴が開いているように見せる

画像に穴が開いているような加工をします。単純に黒い円を重ねるだけだと自然に見えないので 白地に灰色塗りつぶした円を作成し255で規格化し画像に積算する 円の大きさを少し小さくして同様に積算する これを繰り返す という手順により中心部に行くほど黒く…

画像の一部分を拡大する

画像の一部分を拡大します。画像を縦に3つに分割し、真ん中を縦に1.5倍に拡大し、3つの画像を一つに連結することで画像の一部を拡大します。 使った関数・メソッド cv2.imread() : 画像ファイルの読み出し cv2.resize() : 画像サイズの変更 cv2.imwrite() : …

画像を点描画に変換する

画像を点描画に変換します。飛び飛びに円を描いて点描化します。円の色を設定するために、元画像の縮小画像を作りその配列から元画像の飛び飛びの色を取得します。 使った関数・メソッド cv2.imread() : 画像ファイルの読み出し ndarray.shape() : ndarrayの…

リスト内包表記で書いてみる

pythonでリストを生成する際に良く用いられるのがリスト内包表記です。for文からなる複数行のコードを一行で完結に記述できます。 0~9のリストを生成します。 numbers = [] # リストnumbersの生成 for x in range(10): # xを0から9まで変える numbers.appen…

画像の彩度、明度を変える

Pythonの画像処理ライブラリOpenCVで読み込んだ画像をBGR色空間からHSV色空間に変換することで彩度(Saturation)、明度(Value)の調整が可能になります。この方法で画像の鮮やかさ、明るさを調整します。

フォルダ内の画像の幅をそろえる

フォルダ内にある全ての画像ファイルの幅を同じにします。 使った関数・メソッド os.listdir() : ディレクトリ内のファイルをリストに cv2.imread() : 画像ファイルの読み出し img.shape : 画像の高さ、幅、チャンネル数の取得 cv2.resize() : 画像サイズの…

画像の上下のみぼかす

写真の上下をぼかし、中央はそのまままにします。画像の上中下3つに分け、上下の画像をぼかし、最後に上中下を再度連結します。 使った関数・メソッド cv2.imread() : 画像ファイルの読み出し cv2.blur() : 画像の平均化 cv2.vconcat() : 画像を縦に連結 cv2…

画像をチャンネル別(青、緑、赤)に表示する

カラー画像を青、緑、赤各チャンネルの輝度に分けて表示します。 元画像と各チャンネルの画像を連結して一枚の画像にして保存します。 関連記事 航空写真の画素B(青)G(緑)R(赤)平均値を求め棒グラフにする 画像のヒストグラムを比較する 使った関数・メソッ…

コラージュ写真を作る

写真から人物を切り抜いて、別の写真に貼り付けます。 人物写真から、人物が白(1)・それ以外が黒(0)のマスク、人物が黒(0)・それ以外が白(1)のマスクを生成しそれぞれを人物、背景と要素のかけ合わせを行い 、2つの画像を足し合わせることでコラージュ画像を…

画像に集中線を引く

集中線はマンガで用いられる技法で、画面のある点から外側に放射状に線を引き、動きなどを表現するものです。 画像の内側と外側に円を仮定して、内側の円と外側の円の間で三角形を描画することで、画像に集中線を作成しています。 また、集中線の太さ(三角形…

Janomeで形態素解析して形態素を登場回数順に並べる

日本語の形態素解析ライブラリJanomeにより形態素解析し、形態素を登場回数順に表示します。 関連記事 - 形態素解析ライブラリJanomeで分かち書きをする 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 Janome 0.3.8 コード 用いた文…

形態素解析ライブラリJanomeで分かち書きをする

Janomeは形態素解析ライブラリで、日本語の形態素解析が可能です。形態素解析とは文章を最小単位に分け品詞や活用形の分類をすることです。例えば以下のようになります。 今日はいい天気です →今日(名詞) / は(助詞) / いい(形容詞) / 天気(名詞) / です(助…

文字列を置換し会話を関西風に変える

小説の一部が保存されているテキストファイルを読み出し、特定の文字列を置換することで関西風(?)に変換します。また正規表現を用いた置換も行います。 やること テキストファイルを読み出し、文字列として変数に代入 特定の文字列を別の文字列に置換する 使…

Yahoo!知恵袋の閲覧数ランキングベスト20の質問を取得して'令和'が何個含まれるか調べる

今日、新しい元号'令和'が発表されました。ネットでもこの話題で持ちきりです。ここではYahoo!知恵袋の閲覧数ランキングベスト20のページをスクレイピングして、そこに載っている20個の質問文の中に、'令和'がいくつ含まれているかを数えます。 使った関数 r…