packagechenlong.chenlong.java_opencv;importandroidx.appcompat.app.AppCompatActivity;importandroid.graphics.Bitmap;importandroid.graphics.BitmapFactory;importandroid.os.Bundle;importandroid.util.Log;importandroid.widget.ImageView;importandroid.widget.SeekBar;importandroid.widget.TextView;importorg.opencv.android.OpenCVLoader;importorg.opencv.android.Utils;importorg.opencv.core.CvType;importorg.opencv.core.Mat;importorg.opencv.core.Size;importorg.opencv.imgproc.Imgproc;importorg.w3c.dom.Text;public class MainActivity extendsAppCompatActivity {
SeekBar seekBar2;
TextView textView;
@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
seekBar2=findViewById(R.id.seekBar2);
textView=findViewById(R.id.textView);final ImageView imageView=(ImageView)findViewById(R.id.imageView);if (!OpenCVLoader.initDebug())
Log.e("OpenCv", "Unable to load OpenCV");elseLog.d("OpenCv", "OpenCV loaded");//mat变换.opencv do use mat show in ANDROID
seekBar2.setOnSeekBarChangeListener(newSeekBar.OnSeekBarChangeListener() {
@Overridepublic void onProgressChanged(SeekBar seekBar, int progress, booleanfromUser) {final Bitmap bitmapNew=BitmapFactory.decodeResource(MainActivity.this.getResources(), R.drawable.aa);//final Bitmap bitmapNew = bitmap.copy(Bitmap.Config.ARGB_8888, true);
textView.setText(progress+"");
Mat src= newMat(bitmapNew.getHeight(), bitmapNew.getWidth(), CvType.CV_8UC4);
Utils.bitmapToMat(bitmapNew, src);//turn bitmap into mat
Imgproc.cvtColor(src, src, Imgproc.COLOR_RGB2GRAY);//灰色//Gaussian Filters
Imgproc.GaussianBlur(src, src, new Size(1, 1), progress, progress);//模糊
Mat dst= Mat.zeros(newSize(src.width(), src.height()), CvType.CV_8UC3);
Imgproc.threshold(src, dst, progress, progress,
Imgproc.THRESH_OTSU);final Bitmap bitret = bitmapNew.copy(Bitmap.Config.ARGB_8888, true);
Utils.matToBitmap(dst, bitret);
imageView.setImageBitmap(bitret);
}
@Overridepublic voidonStartTrackingTouch(SeekBar seekBar) {
}
@Overridepublic voidonStopTrackingTouch(SeekBar seekBar) {
}
});
}
}