2014年9月25日木曜日

Opencv3.0 ALPHA Python版をMacにソースからインストールしたときのメモ

Mac OSXでPythonはAnacondaでインストールしたPython3.4を使用


  1. OpenCV for Linux/MacをダウンロードしてZipを解凍する
  2. ダウンロードフォルダに移動して、作業用フォルダを作っておく。ここではbuildとした。
  3. CMakeをダウンロードして実行。
  4. ダウンロードしたOpenCVのフォルダとbuildフォルダを指定する。
  5. Searchにpythonと入れてConfigを押す
  6. Configを押すとPython3の設定がいろいろあるので上の図や参考サイトを参考にして埋める。赤い表示がなければとりあえずOK。
  7. Generateを押す。
  8. buildフォルダで
    make -j8
    を実行。失敗するとエラーが出る。Python.hがないとか言われたけど、6の設定したPATHを見直すとうまくいった。
  9. sudo make install
  10. pythonを立ち上げてimport cv2
  11. 今回は「 Library not loaded: libpython3.4m.dylib」とか言われたのでシンボリックリンクを貼った。
  12. sudo ln -/Users/name/anaconda/lib/libpython3.4m.dylib /usr/local/lib

これでとりあえずopencvが動いた。

参考サイト
  1. http://luigolas.com/blog/2014/09/15/install-opencv3-with-python-3-mac-osx/
  2. https://stackoverflow.com/questions/20953273/install-opencv-for-python-3-3

2014年9月21日日曜日

Light fieldの原理をLytroがじきじきに解説

久しぶりにLytroのblogをのぞいたら、Lytroが論文を公表していた。
まだ目を全部に目を通してないけど、見たことない頭があったりした。
http://blog.lytro.com/post/97168596625/modeling-the-light-field-camera

最近はGoogle Cameraでもボケを作れるので静止画でのLytroの優位性はなくなってきている気が。動画だと処理が大変そうだしなー。

2014年9月19日金曜日

Microsoft OCR Library がリリースされた。

https://www.nuget.org/packages/Microsoft.Windows.Ocr/

WindowsRuntimeってWinRTのことで、Windows Metroのアプリをつくるためのものか。
いつか使ってみたいけど、言語がどれもわからん。

2014年9月8日月曜日

Juliaで簡単な回帰

Juliaの練習がてら簡単な線形回帰を行った。

以下のことが分かる練習にはちょうど良いシンプルなコードだ。

  • 乱数をどう発生させるか
  • 計画行列をどう作るか
  • Gadflyを使って2つのプロットを重ねるにはどうするか
  • Gadflyを使って軸の設定をどうするか
これらがわかれば自作する当面の計算にはこまらない気がする…
linreg()はバイアス項を勝手に計算してくれるみたいなので、入れなくてよいみたいだ。

# #Regression Example

using Gadfly
using Distributions

N = 15
xdata = (rand(N) - 0.5) * 2 * pi
σ² = 0.5
function noisy(x, r=rand(Normal(0, σ²))
    return sin(x) + r
end

#X results in Nx9 array
t = noisy(xdata);
X = Float64[x^i for x=xdata, i=[1:9]] #bias is not needed for linreg(). it will interpolate automatically

#regression by linreg
coeffs = linreg(X, t)

#plotting
f = x -> coeffs[1] + sum([coeffs[i]*x^(i-1) for i = [2:10]])

x_reg = linspace(-pi, pi, 100)
y_reg = [f(xi) for xi=x_reg]

plot(layer(x=x_reg, y=y_reg, Geom.line), layer(x=xdata, y=t, Geom.point),
    Coord.Cartesian(xmin=-pi, xmax=pi, ymin=-1.5, ymax=1.5))