A versão mais recente do OpenCV (até o momento em que esse post foi escrito) pode ser encontrada no site do sourceforge e pode ser baixada com o seguinte comando:
$ wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.3.1/OpenCV-2.3.1a.tar.bz2
Para extrair o pacote com os fontes, execute:
$ tar -jxvf OpenCV-2.3.1a.tar.bz2
Tenho o hábito de deixar todos os fontes de pacotes que instalo manualmente no diretório /usr/local/src, então vamos mover todo o conteúdo do pacote extraído no diretório corrente para nosso local de preferência
$ sudo mv OpenCV-2.3.1 /usr/local/src/
Recomendo criar um novo diretório para abrigar tanto os arquivos de configuração quando os que forem produzidos pela compilação. Assim, crie um novo diretório chamado build e mova-se para lá:
$ mkdir build
$ cd build
Bom, precisamos instalar alguns pacotes que são dependências para a compilação desta versão do OpenCV no Ubuntu 11.10. Para isso, execute:
$ sudo apt-get install ffmpeg libavcodec53 libavdevice53 libavfilter2 libavformat53 libavutil51 libdc1394-22 libgsm1 libpostproc52 libschroedinger-1.0-0 libswscale2 libva1
Há ainda outras dependências que também precisam ser instaladas e que irão gerar uma lista de outras sub-dependências. Listei os três pacotes necessários ao OpenCV e logo abaixo deles, uma lista dos pacotes que estes irão requerer:
→ llibgtk2.0-dev
debhelper gettext html2text intltool-debian libatk1.0-dev libcairo-script-interpreter2 libcairo2-dev libexpat1-dev libfontconfig1-dev libfreetype6-dev libgdk-pixbuf2.0-dev libglib2.0-dev libgtk2.0-dev libmail-sendmail-perl libpango1.0-dev libpixman-1-dev libpng12-dev libsys-hostname-long-perl libunistring0 libxcb-render0-dev libxcb-shm0-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxext-dev libxfixes-dev libxft-dev libxi-dev libxinerama-dev libxml2-utils libxrandr-dev libxrender-dev po-debconf x11proto-composite-dev x11proto-damage-dev x11proto-fixes-dev x11proto-randr-dev x11proto-render-dev x11proto-xext-dev x11proto-xinerama-dev zlib1g-dev
→ libgstreamer0.10-dev
gir1.2-gstreamer-0.10 libgstreamer0.10-dev libxml2-dev
→ libgstreamermm-0.10-dev
gir1.2-gst-plugins-base-0.10 libglibmm-2.4-dev libgstreamer-plugins-base0.10-dev libgstreamermm-0.10-2 libgstreamermm-0.10-dev libsigc++-2.0-dev libxml++2.6-2 libxml++2.6-dev
→ libdc1394-22-dev
libdc1394-22-dev libraw1394-dev
→ libjpeg62-dev
→ libtiff4-dev
libtiff4-dev libtiffxx0c2
→ libv4l-dev
→ openni-dev ps-engine
freeglut3 openni-dev ps-engine
Assim, execute o comando a seguir e confirme a instalação dos pacotes adicionais que o apt-get sugerir como necessários.
$ sudo apt-get install libgtk2.0-dev libgstreamer0.10-dev libgstreamermm-0.10-dev libdc1394-22-dev libjpeg62-dev libtiff4-dev libv4l-dev openni-dev ps-engine

Por razão do OpenCV utilizar alguns dos recursos mais recentes do FFmpeg, precisaremos instalar a versão 0.8.5 do FFmpeg manualmente.
Tal qual qualquer outro, baixe, compile e instale o pacote ffmpeg 0.8.5 realizando a sequencia abaixo:
$ wget http://ffmpeg.org/releases/ffmpeg-0.8.5.tar.bz2
$ tar -xvf ffmpeg-0.8.5.tar.bz2
$ sudo mv ffmpeg-0.8.5 /usr/local/src
$ cd /usr/local/src/ffmpeg-0.8.5
$ ./configure --disable-yasm
$ make
$ sudo make install
Agora podemos concluir a instalação pois todas as dependências foram satisfeitas. Certifique-se que depois disto tudo vc esteja no diretório build que havíamos criado lá no início.

$ ccmake ..
Mude as opções BUILD_EXAMPLES e WITH_OPENNI para “ON”
Pressione [c] para criar o arquivo de configuração do CMake e em seguida [q] para sair.
Caso contrário, simplesmente configure usando o comando cmake
$ cmake ..
Pronto! Podemos compilar e instalar o pacote, digitando os comandos a seguir:
$ make
$ sudo make install
Após instalados, os arquivos estarão distribuídos nos seguintes diretórios:
Executáveis em /usr/local/bin
Headers em /usr/local/include/opencv e /usr/local/include/opencv2
Libraries em /usr/local/lib
Documentação em /usr/local/share/OpenCV/doc
Exemplos em /usr/local/share/opencv/samples
Enjoy! :D