【发布时间】:2016-11-06 08:41:28
【问题描述】:
我正在使用 OpenCV,face recognizer project example,由 Robotic Apps 团队为 Android 制作,但摄像头不如预期,旋转有错误和为了旋转相机视图以用于纵向,我们必须在 deliverAndDrawFrame 中旋转 CameraBridgeViewBase class 内的画布方法,我有下一个画布旋转方法:
canvas.drawColor(0, android.graphics.PorterDuff.Mode.CLEAR);
canvas.rotate(180);
mScale = canvas.getWidth() / (float) mCacheBitmap.getHeight();
float scale2 = canvas.getHeight() / (float) mCacheBitmap.getWidth();
if (scale2 > mScale) {
mScale = scale2;
}
if (mScale != 0) {
canvas.scale(mScale, mScale, 0, 0);
}
Log.d(TAG, "mStretch value: " + mScale);
canvas.drawBitmap(mCacheBitmap, 0, -mCacheBitmap.getHeight(), null);
// ...
当我使用值为 90 canvas.rotate(90); 的旋转方法时,它会按预期返回旋转 90 度的图像,但是当我旋转超过 90 或小于 90 时,0 , -90, 180, 270 等 返回黑色图像 :(
这段代码有什么问题?
【问题讨论】:
标签: android opencv canvas image-rotation