/Gasyori100knock

image processing codes to understand algorithm

Primary LanguageJupyter NotebookMIT LicenseMIT

画像処理100本ノック!!

イモリと一緒に画像処理のアルゴリズムを理解するための100本ノックです。

  • 【注意】このページを利用して、または関して生じた事に関しては、私は一切責任を負いません。すべて自己責任でお願い致します。
  • あくまで趣味ベースで作ったものなので、プルリクエストは受け付けてますが依頼などは一切受け付けません そこをご理解頂けた方のみご利用下さい
  • 各アルゴリズムの精度は保証しません(これはあくまで中身理解のためのものです。ここのアルゴリズムに間違いがある場合もあります。)。各アルゴリズム、ライブラリのライセンスはそれぞれのライセンスに準拠します。

問題

画像は↓コードで読み込めます

from skimage import io
img = io.imread('https://yoyoyo-yo.github.io/Gasyori100knock/dataset/images/imori_256x256.png')

使える画像 >> dataset/images

imori_128x128.png
imori_256x256.png
imori_512x512.png
madara_128x128.png
madara_256x256.png
madara_512x512.png
imori_256x256_noise.png imori_256x256_dark.png
imori_256x256_light.png imori_256x256_gamma.png
番号 問題 番号 問題
1 チャネル入れ替え 6 減色処理
2 グレースケール化 7 平均プーリング
3 二値化 8 Maxプーリング
4 大津の二値化 9 ガウシアンフィルタ
5 HSV変換 10 メディアンフィルタ
番号 問題 番号 問題
11 平滑化フィルタ 16 Sobelフィルタ
12 モーションフィルタ 17 Laplacianフィルタ
13 MAX-MINフィルタ 18 Embossフィルタ
14 微分フィルタ 19 LoGフィルタ
15 Prewittフィルタ 20 ヒストグラム表示
番号 問題 番号 問題
21 ヒストグラム正規化 26 Bi-linear補間
22 ヒストグラムのスケーリングとシフト 27 Bi-cubic補間
23 ヒストグラム平坦化 28 アフィン変換(平行移動)
24 ガンマ補正 29 アフィン変換(拡大縮小)
25 最近傍補間 30 アフィン変換(回転)
番号 問題 番号 問題
31 アフィン変換(スキュー) 36 JPEG圧縮 (Step.1)離散コサイン変換
32 フーリエ変換 37 PSNR
33 フーリエ変換 ローパスフィルタ 38 JPEG圧縮 (Step.2)DCT+量子化
34 フーリエ変換 ハイパスフィルタ 39 JPEG圧縮 (Step.3)YCbCr表色系
35 フーリエ変換 バンドパスフィルタ 40 JPEG圧縮 (Step.4)YCbCr+DCT+量子化
番号 問題 番号 問題
41 Cannyエッジ検出 (Step.1) エッジ強度 46 Hough変換・直線検出 (Step.3) Hough逆変換
42 Cannyエッジ検出 (Step.2) 細線化 47 モルフォロジー処理(膨張)
43 Cannyエッジ検出 (Step.3) ヒステリシス閾処理 48 モルフォロジー処理(収縮)
44 Hough変換・直線検出 (Step.1) Hough変換 49 オープニング処理
45 Hough変換・直線検出 (Step.2) NMS 50 クロージング処理
番号 問題 番号 問題
51 モルフォロジー勾配 56 テンプレートマッチング NCC
52 トップハット変換 57 テンプレートマッチング ZNCC
53 ブラックハット変換 58 ラベリング 4近傍
54 テンプレートマッチング SSD 59 ラベリング 8近傍
55 テンプレートマッチング SAD 60 アルファブレンド
番号 問題 番号 問題
61 4-連結数 66 HOG (Step.1) 勾配強度・勾配角度
62 8-連結数 67 HOG (Step.2) 勾配ヒストグラム
63 細線化 68 HOG (Step.3) ヒストグラム正規化
64 ヒルディッチの細線化 69 HOG (Step.4) 特徴量の描画
65 Zhang-Suenの細線化 70 カラートラッキング
番号 問題 番号 問題
71 マスキング 76 顕著性マップ
72 マスキング(カラートラッキングとモルフォロジー) 77 ガボールフィルタ
73 縮小と拡大 78 ガボールフィルタの回転
74 ピラミッド差分による高周波成分の抽出 79 ガボールフィルタによるエッジ抽出
75 ガウシアンピラミッド 80 ガボールフィルタによる特徴抽出
番号 問題 番号 問題
81 Hessianのコーナー検出 86 簡単な画像認識 (Step.3) 評価(Accuracy)
82 Harrisのコーナー検出 (Step.1) Sobel + Gaussian 87 簡単な画像認識 (Step.4) k-NN
83 Harrisのコーナー検出 (Step.2) コーナー検出 88 K-means (Step.1) 重心作成
84 簡単な画像認識 (Step.1) 減色化 + ヒストグラム 89 K-means (Step.2) クラスタリング
85 簡単な画像認識 (Step.2) クラス判別 90 K-means データを増やす
番号 問題 番号 問題
91 K-meansによる減色処理 (Step.1) 色の距離によるクラス分類 96 ニューラルネットワーク (Step.2) 学習
92 K-meansによる減色処理 (Step.2) 減色処理 97 簡単な物体検出 (Step.1) スライディングウィンドウ + HOG
93 機械学習の学習データの用意 (Step.1) IoUの計算 98 簡単な物体検出 (Step.2) スライディングウィンドウ + NN
94 機械学習の学習データの用意 (Step.2) ランダムクラッピング 99 簡単な物体検出 (Step.3) Non-Maximum Suppression
95 ニューラルネットワーク (Step.1) 使ってみる 100 簡単な物体検出 (Step.4) 評価 Precision, Recall, F-score, mAP

TODO

adaptivebinalizatino, poison image blending, saliency map

License