GitHub - yoyoyo-yo/Gasyori100knock
source link: https://github.com/yoyoyo-yo/Gasyori100knock
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
README.md
画像処理100本ノック!!
画像処理の初学者のための問題100問。
これは画像処理の基本的処理の知識を身に着け、アルゴリズムを理解するための100本ノックです。
ここに載っている問題はOpenCVでAPIが用意されているものが殆どですが、あえてそれを自分の手で実装してください。
まだ作成中なので、随時更新していきます。なので問題の難易度の順番もめちゃくちゃです。
なるべくポピュラーなものを採用していますが、たまにネタ切れであんまり聞かないものもあります笑
Recent
【New!】2019.1.9. Q.47-50 モルフォロジー処理 を追加
環境設定
Python-3.6でやって下さい。 (解答はPython-3.6です)
1. Minicondaのインストール
https://conda.io/miniconda.html のサイトからMinicondaをインストールします。
Minicondaがインストールできたら、以下コマンドで仮想環境を作成します。
$ conda create python=3.6 -n gasyori100
作成できたら、以下コマンドで仮想環境を動作します。
$ source actiavte gasyori100
するとこうなります。
(gasyori100) :~/work_space/Gasyori100knock/ :$
2. パッケージのインストール
以下のコマンドで必要なパッケージをインストールします。
$ pip install -r requirement.txt
3. 画像処理チュートリアル
以下のファイルを作成し sample.py という名前で保存し、実行します。
import cv2 img = cv2.imread("assets/imori.jpg") cv2.imshow("imori", img) cv2.waitKey(0) cv2.destroyAllWindows()
$ python sample.py
これで以下の画像が表示されれば成功です! 何かボタンを押せば消えます。
次に画像処理に関するnumpyの扱い方のためにTutorialフォルダを見てみて下さい。(もう知ってるという人はスキップして下さい。)
これからは問題を解いていってください。それぞれのフォルダに問題内容が入っています。 問では assets/imori.jpg を使用して下さい。
- チュートリアル >> Tutorial
- 問題1-10 >> Quetion_01_10
- 問題11-20 >> Question_11_20
- 問題21-30 >> Question_21_30
- 問題31-40 >> Question_31_40
- 問題41-50 >> Question_41_50
- 問題51-60 >> Question_51_60
- 問題61-70 >> Question_61_70
- 問題71-80 >> Quesiton_71_80
- 問題81-90 >> Question_81_90
- 問題91-100 >> Question_91_100
注意
- 本稿は画像処理の基礎的な知識・理論を学ぶための教材です。
- 解答ではなるべくコードを簡易化するために、main( )などを使用してしません。
- numpyを使用しますが、numpyに関する基本知識は載せません。各自調べて下さい。
問題
- 無印は画像処理をやる上での基礎知識
- ☆は応用問題。基礎を組み合わせて、実際に論文で用いられるような手法の理解
未になっている問題は解答未作成
番号 問題 備考
番号 問題 備考 1 チャネル入れ替え
21 ヒストグラム正規化
2 グレースケール化
22 ヒストグラム操作
3 二値化
23 ヒストグラム平坦化
4 大津の二値化
24 ガンマ補正
5 HSV変換
25 最近傍補間
6 減色処理
26 Bi-linear補間
7 平均プーリング
27 Bi-cubic補間
8 Maxプーリング
28 アフィン変換(平行移動)
9 ガウシアンフィルタ
29 アフィン変換(拡大縮小)
10 メディアンフィルタ
30 アフィン変換(回転)
11 平滑化フィルタ
31 アフィン変換(スキュー)
12 モーションフィルタ
32未 フーリエ変換
13 MAX-MINフィルタ
33未 フーリエ変換 ローパスフィルタ
14 微分フィルタ
34未 フーリエ変換 ハイパスフィルタ
15 Sobelフィルタ
35未 フーリエ変換 バンドパスフィルタ
16 Prewittフィルタ
36☆ JPEG圧縮 (Step.1)離散コサイン変換
17 Laplacianフィルタ
37 PSNR
18 Embossフィルタ
38☆ JPEG圧縮(Step.2)DCT+量子化
19 LoGフィルタ
39 JPEG圧縮(Step.3)YCbCr表色系
20 ヒストグラム表示
40☆ JPEG圧縮(Step.4)YCbCr+DCT+量子化
番号 問題 備考
番号 問題 備考 41☆ Cannyエッジ検出 (Step.1) エッジ強度
42☆ Cannyエッジ検出 (Step.2) 細線化
43☆ Cannyエッジ検出 (Step.3) ヒステリシス閾処理
44☆ Hough変換・直線検出 (Step.1) Hough変換
45☆ Hough変換・直線検出 (Step.2) NMS
46☆ Hough変換・直線検出 (Step.3) Hough逆変換
47 モルフォロジー処理(膨張)
48 モルフォロジー処理(収縮)
49 オープニング処理
50 クロージング処理
TODO
Hough, Gabor, HOG
注意
このページを利用して生じた事に関しては、私は一切責任を負いません。 すべて自己責任でお願い致します。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK