Git Product home page Git Product logo

gasyori100knock's Introduction

画像処理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

注意

このページを利用して、または関して生じた事に関しては、私は一切責任を負いません。 すべて自己責任でお願い致します。

gasyori100knock's People

Contributors

yoyoyo-yo avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.