OpenCV2.2のGPU

今更だけどOpenCV2.2がCUDA対応だったので入れてみた。

いちおう環境を載せておくと
Ubuntu 11.04 AMD64
OpenCV 2.2
CUDA 4.0RC2
を使用している。

インストールが結構大変で時間がかかった。
細かい方法はメモしてないけど、
CUDAのExampleのコンパイルが通るのが最初の目標。
そのあとはsvnopencv拾ってきて、WITH_CUDA=ONでインストールできた。

まだ、あまり分かってないけどガウシアンフィルタのサンプルを作った。

#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/gpu/gpu.hpp>
#include <iostream>

int main()
{
    cv::gpu::DeviceInfo di(cv::gpu::getDevice());
    std::cout << di.name() << std::endl;

    cv::Mat h_input = cv::imread("Parrots.bmp", 0);
    cv::gpu::GpuMat d_input(h_input);
    cv::gpu::GpuMat d_output;

    // ガウシアンフィルタ
    cv::gpu::blur(d_input, d_output, cv::Size(5, 5));
    cv::Mat h_output(d_output);

    cv::imwrite("result.bmp", h_output);

    return 0;
}

むしろ遅くなっているけど、ちゃんと平滑化できてる。