金子邦彦研究室インストールオープンデータ,データファイル処理画像の特徴点

画像の特徴点

前準備

ImageMagick のインストール

curl のインストール

VLFeat のインストール

Python のインストール(Windows 上)

サイト内の関連ページ

関連する外部ページ

Python の公式ページ: https://www.python.org/

ここで説明のためにサンプルとして使用する画像

curl コマンドを用いてダウンロードできる.あるいは Web ブラウザでもダウンロードできる.

curl -L https://github.com/opencv/opencv/blob/master/samples/data/fruits.jpg?raw=true -o fruits.jpg

VLFeat のコマンド(sift コマンド, aib コマンド, mser コマンドなど)

SIFT 実行と結果表示(VLFeat,Python を使用)

  1. SIFT の実行

    VLFeat の sift コマンド,ImageMagick の convert コマンドを使用. 次を実行することにより,ファイル fruits.sift ができる.

    curl -L https://github.com/opencv/opencv/blob/master/samples/data/fruits.jpg?raw=true -o fruits.jpg
    convert fruits.jpg fruits.pgm
    sift fruits.pgm
    
  2. 結果の表示

    Python プログラムの実行

    Python 開発環境(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder, PyCharm, PyScripterなど)も便利である.

    Python のまとめ: 別ページ »にまとめ

    Python プログラム

    import os
    import cv2
    import pandas as pd
    import numpy as np
    bgr = cv2.imread("fruits.jpg")
    a = pd.read_table("fruits.sift", sep=' ', header=None)
    for i, row in a.iterrows():
    #    print(i, row[0], row[1])
        c = cv2.circle(bgr, (int(row[0]), int(row[1])), 3, (0, 0, 255), -1)
    
    cv2.imshow("", bgr)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    

    [image]

    [image]

SIFT の結果表示(Octave を使用)

今度は fruits.jpg と fruits.sift を Octave を用いて表示.

S = dlmread("fruits.sift", " ", 1, 0); 
[rgb, map, alpha] = imread("fruits.jpg");
mono = rgb2gray( rgb );
colormap( gray(256) );
hold
imshow(mono);
plot(S(:,1), S(:,2), '@');

[image]

MSER 実行と結果表示(VLFeat,Python を使用)

  1. MSER の実行

    VLFeat の sift コマンド,ImageMagick の convert コマンドを使用. 次を実行することにより,ファイル fruits.frame ができる.

    curl -L https://github.com/opencv/opencv/blob/master/samples/data/fruits.jpg?raw=true -o fruits.jpg
    convert fruits.jpg fruits.pgm
    mser fruits.pgm
    
  2. 結果の表示

    Python プログラムの実行

    Python 開発環境(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder, PyCharm, PyScripterなど)も便利である.

    Python のまとめ: 別ページ »にまとめ

    Python プログラム

    import os
    import cv2
    import pandas as pd
    import numpy as np
    bgr = cv2.imread("fruits.jpg")
    a = pd.read_table("fruits.frame", sep=' ', header=None)
    for i, row in a.iterrows():
    #    print(i, row[0], row[1])
        c = cv2.circle(bgr, (int(row[0]), int(row[1])), 3, (0, 0, 255), -1)
    
    cv2.imshow("", bgr)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    

    [image]

    [image]

MSER の結果表示(Octave を使用)

今度は fruits.jpg と fruits.frame を Octave を用いて表示.

S = dlmread( "fruits.frame", " ", 1, 0 ); 
[rgb, map, alpha] = imread("fruits.jpg");
mono = rgb2gray( rgb );
colormap( gray(256) );
hold
imshow(mono);
plot(S(:,1), S(:,2), '@');

[image]