我在最新的OpenCV 2.4.3 android项目中使用相机,并将Mat转换为位图。我正在使用的实用程序方法(在 OpenCV 项目中提供)需要与 Mat 宽度和高度相同的位图才能进行转换。当我访问垫子的高度时,它是 0。宽度为 640(正如预期的那样,我预计高度为 480)。
垫子是连续的,虽然我可以理解这个影响mat.rows(),但它不应该改变高度吗?
对于那些要求代码的人:如果您查看示例代码,相机活动具有以下方法:
public Mat onCameraFrame(Mat inputFrame) {
inputFrame.copyTo(mRgba);
DoSomething(mRgba.getNativeObjAddr());
return mRgba;
}
当我使用以下方法检查尺寸时:
Log.d(TAG, "Width: " + mRgba.width() + ", Height:" + mRgba.height());
我得到:
Width: 640, Height:0
答案是,当我打电话时:
mOpenCvCameraView.disableView();
间接调用:
mRgba.release();
大概将高度更改为 0。