去官网下载SKDK https://opencv.org/releases/
下载解压后:
导入模块,选择sdk 选择app,将模块添加进来
查看是否配置成功:
private void setupOpenCV() { mInitSuccess = OpenCVLoader.initDebug(); if (mInitSuccess) { Log.d("TAG", "OpenCV init success"); } else { Log.e("TAG", "OpenCV init failed"); } }生成灰度图:
public void onOperateClick(View view) { if (mInitSuccess) { Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.main); Mat srcMat = new Mat(); Mat dstMat = new Mat(); Utils.bitmapToMat(bitmap, srcMat); Imgproc.cvtColor(srcMat, dstMat, Imgproc.COLOR_BGRA2GRAY); Utils.matToBitmap(dstMat, bitmap); mIvImage.setImageBitmap(bitmap); srcMat.release(); dstMat.release(); } else { Toast.makeText(this, "init failed", Toast.LENGTH_SHORT).show(); } }整体代码:
public class MainActivity extends AppCompatActivity { private boolean mInitSuccess; private ImageView mIvImage; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); setupOpenCV(); } private void init() { mIvImage=findViewById(R.id.image_main); } private void setupOpenCV() { mInitSuccess = OpenCVLoader.initDebug(); if (mInitSuccess) { Log.d("TAG", "OpenCV init success"); } else { Log.e("TAG", "OpenCV init failed"); } } public void onOperateClick(View view) { if (mInitSuccess) { Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.main); Mat srcMat = new Mat(); Mat dstMat = new Mat(); Utils.bitmapToMat(bitmap, srcMat); Imgproc.cvtColor(srcMat, dstMat, Imgproc.COLOR_BGRA2GRAY); Utils.matToBitmap(dstMat, bitmap); mIvImage.setImageBitmap(bitmap); srcMat.release(); dstMat.release(); } else { Toast.makeText(this, "init failed", Toast.LENGTH_SHORT).show(); } } }