2 u014736546 u014736546 于 2017.01.07 12:22 提问

安卓opencv mat转bitmap停止运行

纯新手 刚接触三天不到
用opencv做拍照
可是抓取图像之后不能转为bitmap在imageview中显示
Utils.matToBitmap(mTmp,bit); 一直卡在这一句
跪求大大们指点
不知道代码有没有用 贴上来再说

顺便求问一下我的cameraview旋转之后没有全屏 这是为什么 怎么弄啊

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE); // 删除标题
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); // 设置全屏
setContentView(R.layout.activity_main);
but=(Button)findViewById(R.id.pai);
img=(ImageView)findViewById(R.id.img);
but.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (IsStart==true){
IsStart=false;
mTmp=mRgbaT;
mOpenCvCameraView.disableView();
bit=Bitmap.createBitmap(mTmp.height(),mTmp.width(), Bitmap.Config.ARGB_8888);
Utils.matToBitmap(mTmp,bit);
img.setImageBitmap(bit);
//Intent intent=new Intent();
//intent.setClass(MainActivity.this,MainActivity.class);
// intent.putExtra("bitmap", bit);
//startActivity(intent);
}
else{
IsStart=true;
mOpenCvCameraView.enableView();
}
}
});

    mOpenCvCameraView = (CameraBridgeViewBase) findViewById(R.id.activity_camera_view);    // 绑定摄像头控件
    mOpenCvCameraView.setCvCameraViewListener(this);
    mOpenCvCameraView.enableView();


}


public void onCameraViewStarted(int width, int height) {

    mRgba = new Mat(height, width, CvType.CV_8UC4);    // 为图像帧数据申请空间,8位4通道图像,包括透明alpha通道
    mRgbaT=new Mat(height, width, CvType.CV_8UC4);
    mTmp=new Mat(height, width, CvType.CV_8UC4);
}


public void onCameraViewStopped() {
    mRgba.release();    // 回收帧数据
}


public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
    mRgba = inputFrame.rgba();    // 获取摄像头前景图像
    Mat rotateMat=Imgproc.getRotationMatrix2D(new Point(mRgba.rows()/2,mRgba.cols()/2), -90, 1);
    Imgproc.warpAffine(mRgba,mRgbaT,rotateMat,mRgbaT.size());
    return mRgbaT;
}

1个回答

zqbnqsdsmd
zqbnqsdsmd   2017.02.22 02:40
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!