2

私はOpenCVを初めて使用し、APIをふるいにかけ始めました。画像を構成する各ピクセルの色、強度、テクスチャの値を取得するつもりです。私は構造をいじっていました-最初はIplImageでしたが、あまり進歩できませんでした。

これを行うための手段を教えてください。

乾杯

4

1 に答える 1

3

OpenCV 2.0を試しましたか? それらは、物事をより簡単にする新しい C++ インターフェイスを備えています。新しい Mat クラスを使用して、画像をロードしたり、ピクセルに効率的にアクセスしたりできます。IplImage fun よりもはるかにクリーンです。必要なものへの参照として \doc\opencv.pdf を使用しています。チュートリアル、新しい C++ インターフェイスの例などがあります。開始するのに十分な内容です。

特定の OpenCV に関する質問がある場合は、お気軽にお問い合わせください。

開始するためのデモ コードを次に示します (cv 名前空間を使用しました)。

    // Load the image (looks like MATLAB :) ? )
    Mat M = imread("h:\\lena.bmp");
    // Display
    namedWindow("Lena",CV_WINDOW_AUTOSIZE);
    imshow("Lena",M);
    waitKey();  

    // Crop out rectangle from (100,100) of size (200,200) of the red channel 
    const int offset[2] = {100,100};
    const int dims[2] = {200,200};  
    Mat Red(dims[0],dims[1],CV_8UC1);

    // Read it from M into Red
    uchar* lena = M.data;
    for(int i=0;i<dims[0];++i)
        for(int j=0;j<dims[0];++j)
        {
            // P = i*rows*channels + j*channels + c
            Red.at<uchar>(i,j) = *(lena + (i+offset[0])*M.rows*M.channels() + (j+offset[1])*M.channels()+0);
        }

    //Display
    namedWindow("RedRect",CV_WINDOW_AUTOSIZE);
    imshow("RedRect",Red);
    waitKey();
于 2009-10-08T17:48:20.080 に答える