gpt4 book ai didi

opencv - 使用 OpenCV 在 Android 中更改图像分辨率

转载 作者:太空宇宙 更新时间:2023-11-03 21:11:02 24 4
gpt4 key购买 nike

我正在使用 JavaCameraView 和 OpencCV 捕获帧,但我卡在默认 620*480 分辨率,这不是我的要求我的手机可以支持 1280*720 分辨率,我一直在努力寻找许多天的解决方案,尝试了很多选项但无法更改默认图像/帧分辨率。

private BaseLoaderCallback  mLoaderCallback = new BaseLoaderCallback(this) {
@Override
public void onManagerConnected(int status) {
switch (status) {
case LoaderCallbackInterface.SUCCESS:
{
Log.i("OpenCv", "OpenCV loaded successfully");
mOpenCvCameraView.enableView();

} break;
default:
{
super.onManagerConnected(status);
} break;
}
}
};

@Override
public void onResume()
{
super.onResume();
if (!OpenCVLoader.initDebug()) {
Log.d("OpenCv", "Internal OpenCV library not found. Using OpenCV Manager for initialization");
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_11, this, mLoaderCallback);
} else {
Log.d("OpenCv", "OpenCV library found inside package. Using it!");
mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);
}
}


@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_camera);

mOpenCvCameraView = (CameraBridgeViewBase) findViewById(R.id.tutorial1_activity_java_surface_view);
mOpenCvCameraView.setMaxFrameSize(720,1280);
mOpenCvCameraView.setVisibility(SurfaceView.VISIBLE);
mOpenCvCameraView.setCvCameraViewListener(this);
}


@Override
public void onCameraViewStarted(int width, int height) {

// Recieve Image Data when the caera preview starts
mRgba = new Mat(height, width, CvType.CV_8UC4);
mRgbaT = new Mat(height, width, CvType.CV_8UC4);
mRgbaF = new Mat(height, width, CvType.CV_8UC4);
//End

mSpectrum = new Mat();
mBlobColorRgba = new Scalar(255);
mBlobColorHsv = new Scalar(255);
SPECTRUM_SIZE = new Size(400, 400);
CONTOUR_COLOR = new Scalar(255,0,0,255);

}


@Override
public void onCameraViewStopped() {
mRgba.release();
}

@Override
public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) {

timeofFrame = System.currentTimeMillis();

mRgba = inputFrame.rgba();

Core.transpose(mRgba,mRgbaT);
//Rotate 90 degrees//
Imgproc.resize(mRgbaT,mRgbaF,mRgbaF.size(),0,0,0);
Core.flip(mRgbaF,mRgba,1);

return mRgba;

}
}

最佳答案

如果您的 JavaCameraView 是横向显示的,您可以尝试更换您的

mOpenCvCameraView.setMaxFrameSize(720,1280);

mOpenCvCameraView.setMaxFrameSize(1280,720);

如果不是,请尝试在 manifest.xml 中更改事件类的方向,例如

<activity android:name="CameraActivity"
android:screenOrientation="landscape" />

在那之后改变 MaxFrameSize:

mOpenCvCameraView.setMaxFrameSize(1280,720);

关于opencv - 使用 OpenCV 在 Android 中更改图像分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43547221/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com