纯新手 刚接触三天不到
用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;
}