2

Android 用の OpenCV で非常に奇妙な問題に直面しています: Mat.at でピクセルにアクセスすると、画面に間違ったピクセルが表示されます: 簡単な例:

for( double y = (mat.rows - h) / 2 ; y < (mat.rows + h) / 2 ; y++ ) {
    for( double x = (mat.cols - w) / 2; x < (mat.cols + w) / 2; x++ ) {
        for( int c = 0; c < 3; c++ ) {
            mat.at<Vec3b>(y,x)[c] =
                saturate_cast<uchar>( 255 );

        }
    }
}

circle(mat, Point((mat.cols - w) / 2, (mat.rows - h) / 2), 10, Scalar(255,0,0,255));
circle(mat, Point((mat.cols + w) / 2, (mat.rows - h) / 2), 10, Scalar(255,0,0,255));
circle(mat, Point((mat.cols - w) / 2, (mat.rows + h) / 2), 10, Scalar(255,0,0,255));
circle(mat, Point((mat.cols + w) / 2, (mat.rows + h) / 2), 10, Scalar(255,0,0,255));

角をボックスに揃える必要がありますが、そうではありません。真の座標にアクセスするために行う変換はありますか?

ここに画像の説明を入力

4

2 に答える 2

0

これはロングショットですが、役立つかもしれません。これは SDK エミュレーションですか? それらに問題があったことを覚えています。デバイスでコードを試してみると、魔法のように機能しました。

于 2013-05-22T22:29:28.003 に答える