Pythonでいろいろやってみる

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

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

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

明るい画像では明度の分布は明るい方に集中しており、暗い画像では明度は暗い方に集中しています。この明度の分布(ヒストグラム)を広げて明るさをまんべんなくする方法がヒストグラム平坦化で、画像のコントラスト調整ができます。 OpenCVではメソッドcv2.eq…

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

K-means(K平均法)で花の写真を色でクラスタリングする では画面全体のBGRの比率を特徴量として用いましたが、全画素のBGR値をそのまま特徴量に用いてクラスタリングをします。 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 OpenCV …

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

K-Meansクラスタリングは、与えられたデータを自動的に分類するアルゴリズムであるクラスタリングの一種で、クラスタの平均を用い、与えられたクラスタ数k個に分類する手法です。(Wikipedia >> k平均法) cv2.kmeans()を用いるとK-Meansクラスタリングが簡単…

ライブラリ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よりインストールします。 …

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

Pythonの機械学習ライブラリscikit-learnを使って文書の類似度を求めます。文書中に含まれる単語が「その文書内でどれくらい重要か」を表す尺度であるTF-IDFにより、すべての単語を次元とした文書ベクトルを作成します。文書ベクトル同士のコサイン類似度を…

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

word2vecでコパアメリカ 日本vsチリ戦の敗因を分析します。word2vecは文章中の単語をベクトル化する技術で、関連する単語の抽出や単語同士の類似度を調べたり単語の線形計算ができるようになります。ベクトル化処理をするためには単語の区切りを示す必要があ…

ルックアップテーブルによる画像の減色

画素値0~255のそれぞれに対する係数をあらかじめ決めておき、画像を処理する手法があります。この係数のリストをルックアップテーブルと言い、ルックアップテーブルを用意することでOpenCVのcv2.LUT()メソッドにより画像処理が可能です。 元画像はBGRそれぞ…

特定チャンネルをガンマ補正し画像の色味を変える

画素値0~255のそれぞれに対する係数をあらかじめ決めておき、画像を処理する手法があります。この係数のリストをルックアップテーブルと言い、ルックアップテーブルを用意することでOpenCVのcv2.LUT()メソッドにより画像処理が可能です。 特定のチャンネル(…

K-Meansクラスタリングによる画像の減色

K-Meansクラスタリングは、与えられたデータを自動的に分類するアルゴリズムであるクラスタリングの一種で、クラスタの平均を用い、与えられたクラスタ数k個に分類する手法です。(Wikipedia >> k平均法) cv2.kmeans()を用いるとK-Meansクラスタリングが簡単…

画像をグニャグニャにする(各行をsinカーブでx方向にずらす)

画像をグニャグニャにします。画像を読み出し別のndarrayに1行ずつコピーしますが、その際にx方向にsinカーブでずらすことでグニャグニャに変形した画像を生成します。 関連記事 黒画像を作成する 画像を斜めに変形する 画像をザーザーにする(各行をランダム…

画像をザーザーにする(各行をランダムにx方向にずらす)

画像をザーザーにします。画像を読み出し別のndarrayに1行ずつコピーしますが、その際にx方向にランダムにずらすことでザーザーに変形した画像を生成します。 関連記事 黒画像を作成する 画像を斜めに変形する 環境 windows10 home Anaconda 3/ jupyter note…

波線を描く

波線を描きます。波線の絵を使いたくなることが結構ありますが、いざ描こうと思うと面倒です。なのでpythonで作成してみます。 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 OpenCV 4.0.0 コード import numpy as np import math i…

画像を斜めに変形する

画像を斜めに変形します。画像を読み出し別のndarrayに1行ずつコピーしますがその際にx方向に1pxずつずらすことで斜めに変形した画像を生成します。 関連記事 黒画像を作成する 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 OpenCV…

numpyで乱数生成(一様分布、正規分布)

numpyの乱数生成関数であるrandomを用います。一様分布、標準正規分布(平均0、分散1である正規分布)および任意の平均・標準偏差を持つ正規分布を生成し、ヒストグラムで表示します。 使ったメソッド numpy.random : 乱数生成 環境 windows10 home Anaconda 3…

文字列にアルファベットがそれぞれ何個含まれているか数える

文字列にアルファベットの小文字(a-z)と大文字(A-Z)がそれぞれ何個ずつ出現するか数えます。for文で文字コードを回して.count()メソッドにより出現回数をカウントします。 使ったメソッド .count() : 文字列の出現回数を求める 環境 windows10 home Anaconda…

回転を考慮した外接矩形を描画する

Pythonの画像処理ライブラリOpenCVの領域検出機能を使って回転を考慮した外接矩形(長方形)を算出します。findContoursにより領域を検出しminAreaRectにより検出した領域に対する外接矩形を求めます。

ナップサック問題を解く(貪欲法)

ナップサック問題とは、ナップサックに容量を超えずに荷物を詰めるときにその荷物の合計価値が最大となる組み合わせを求める最適化問題です。 ここでは 重さ1kg、値段100円の荷物が3個 重さ2kg、値段300円の荷物が3個 重さ5kg、値段800円の荷物が3個 ある場…

ナップサック問題を解く(ライブラリknapsackを使用)

ナップサック問題とは、ナップサックに容量を超えずに荷物を詰めるときにその荷物の合計価値が最大となる組み合わせを求める最適化問題です。 ここでは 重さ1kg、値段100円の荷物が3個 重さ2kg、値段300円の荷物が3個 重さ5kg、値段800円の荷物が3個 ある場…

食べログ全国ランキングTOP20の星をジャンル別に比較する

食べログの全国ランキングTOP20の星(レーティング)をフレンチ、ラーメン、寿司、天ぷらの4ジャンルで集計・比較し、どのような傾向にあるかを調べます。 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 コード %matplotlib inline # …