package com.example.opencvapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
import org.opencv.android.OpenCVLoader;
import org.opencv.android.Utils;
import org.opencv.core.Mat;
import org.opencv.imgproc.Imgproc;
public class Expt_1 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_expt1);
initLoadOpenCV();
//通过id查找按钮
Button button_go_home1 = findViewById(R.id.go_home1);
//添加按钮点击响应
button_go_home1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//界面跳转
startActivity(new Intent(Expt_1.this,MainActivity.class));
}
});
Button btn_toGray =findViewById(R.id.btn_toGray);
ImageView img_expt_1 =findViewById(R.id.img_expt_1);
btn_toGray.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//读取图片
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.img_chapone);
//彩色图片
Mat src = new Mat();
//灰度图片
Mat dst = new Mat();
//图片类型转换bitmap为mat
Utils.bitmapToMat(bitmap,src);
//彩色转灰度
Imgproc.cvtColor(src,dst,Imgproc.COLOR_RGBA2GRAY);
//图片类型转换mat为bitmap
Utils.matToBitmap(dst,bitmap);
//关联图片显示组件
img_expt_1.setImageBitmap(bitmap);
//清空变量内存
src.release();
dst.release();
}
});
}
private void initLoadOpenCV(){
//初始化openCV
boolean success = OpenCVLoader.initDebug();
if(success){
Log.i("CV_EXPT1_TAG","OpenCV Libraries load ...");
}
else {
Toast.makeText(this.getApplicationContext(),"WARNNING:Could not load ...",Toast.LENGTH_LONG).show();
}
}
}