2011年12月2日金曜日

BibTex: How to change the reference style


Assumption: 
You use cite.sty to allow the multiple references for \cite. 
\usepackage{cite}
e.g., \cite{Yukawa1900-Nature, Tomonaga1901-Nature}


When you compile the line above, you will see
[1, 2] or [Yukawa 1900, Tomonaga 1900], for instance.


If you want to change them into, e.g., (Yukawa 1900; Tomonaga 1901), 

insert the following three lines in the preamble:
\renewcommand\citeleft{(}
\renewcommand\citeright{)}
\renewcommand\citepunct{;}

Reference
The bottom of cite.sty
http://ftp.yz.yamagata-u.ac.jp/pub/CTAN/macros/latex/contrib/cite/cite.sty

bibtex の 引用形式を調整したい。

前提
\usepackage{cite}
で、\cite コマンドに複数の入力を許可している。
e.g., \cite{Yukawa1900-Nature, Tomonaga1901-Nature}

この状態で普通にコンパイルすると、 [1, 2] とかになる。
あるいは、 [Yukawa 1900, Tomonaga 1901]
のようになる。

ここで、 \begin{document} の前に

\renewcommand\citeleft{(}
\renewcommand\citeright{)}
\renewcommand\citepunct{;}

を入れると、
(Yukawa 1900; Tomonaga 1901)
になる。



参考文献
cite.sty の最後のほう
http://ftp.yz.yamagata-u.ac.jp/pub/CTAN/macros/latex/contrib/cite/cite.sty

2011年11月3日木曜日

lv emacs などが文字化けするとき

set-buffer-file-coding-system とかでもダメなときは、

export LC_ALL=ja_JP.UTF-8

で、ターミナルの全てのロケールを変えてみるとうまくいく

Valgrind

以下からダウンロード
http://valgrind.org/downloads/current.html


apt-get install libc6-dbg

2011年10月16日日曜日

Read m2ts videos via OpenCV

Installation
The support formats of OpenCV depend on ffmpeg. 
Thus, install 

sudo apt-get install libx264-dev yasm
git clone git://git.videolan.org/ffmpeg.git ffmpeg
cd ffmpeg
./configure
make
sudo make install

if you can play the file with ffmpeg, you can load it.


Sample code

import cv
import numpy

capture = cv.CreateFileCapture("yourvideo.m2ts")

cv.NamedWindow("Test", cv.CV_WINDOW_AUTOSIZE)
    
while 1:
    img = cv.QueryFrame(capture)
    cv.ShowImage("Test", img)
        
    c = cv.WaitKey(2)
    if c ==ord('q'):
        break

Python and OpenCV2.2



IPLImage (opencv) and Nnmpy Array converter
just copied from
http://opencv.willowgarage.com/wiki/PythonInterface

save the following code as adaptor.py

import cv
import numpy as np

def cv2array(im):
  depth2dtype = {
        cv.IPL_DEPTH_8U: 'uint8',
        cv.IPL_DEPTH_8S: 'int8',
        cv.IPL_DEPTH_16U: 'uint16',
        cv.IPL_DEPTH_16S: 'int16',
        cv.IPL_DEPTH_32S: 'int32',
        cv.IPL_DEPTH_32F: 'float32',
        cv.IPL_DEPTH_64F: 'float64',
    }

  arrdtype=im.depth
  a = np.fromstring(
         im.tostring(),
         dtype=depth2dtype[im.depth],
         count=im.width*im.height*im.nChannels)
  a.shape = (im.height,im.width,im.nChannels)
  return a

def array2cv(a):
  dtype2depth = {
        'uint8':   cv.IPL_DEPTH_8U,
        'int8':    cv.IPL_DEPTH_8S,
        'uint16':  cv.IPL_DEPTH_16U,
        'int16':   cv.IPL_DEPTH_16S,
        'int32':   cv.IPL_DEPTH_32S,
        'float32': cv.IPL_DEPTH_32F,
        'float64': cv.IPL_DEPTH_64F,
    }
  try:
    nChannels = a.shape[2]
  except:
    nChannels = 1
  cv_im = cv.CreateImageHeader((a.shape[1],a.shape[0]),
          dtype2depth[str(a.dtype)],
          nChannels)
  cv.SetData(cv_im, a.tostring(),
             a.dtype.itemsize*nChannels*a.shape[1])
  return cv_im




Sample cod: Yellow image
import cv
import numpy
import adaptor

capture = cv.CaptureFromCAM(0)#CreateCameraCapture(0)
cv.NamedWindow("Test", cv.CV_WINDOW_AUTOSIZE)
    
while 1:
    img = cv.QueryFrame(capture)
    array = adaptor.cv2array(img)
    array[:, :, 0] = 0
    
    cv.ShowImage("Test", adaptor.array2cv(array))
    
    c = cv.WaitKey(2)
    if c ==ord('q'):
        break

Compiling and Installing OpenCV 2.2 on Ubuntu

Compiling and Installing
Download source from:
http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.2/


Then apply the following modifications
https://code.ros.org/trac/opencv/changeset/5206

Then,
cd OpenCV-2.2.0
mkdir build
cd build
cmake .
make 
sudo make install


Sample python code
A sample code  to grab images and show it.
Press q to finish.


import cv


capture = cv.CaptureFromCAM(0)#CreateCameraCapture(0)
cv.NamedWindow("Test", cv.CV_WINDOW_AUTOSIZE)
    
while 1:
    img = cv.QueryFrame(capture)    
    cv.ShowImage("Test", img)
    c = cv.WaitKey(2)
    print c
    if c ==ord('q'):
        break