AndroidStudio opencv(一)
原创
©著作权归作者所有:来自51CTO博客作者是丹凤呀的原创作品,请联系作者获取转载授权,否则将追究法律责任
1、官网下载opencv中Android的sdk https://opencv.org/releases.html
2、在Androidstudio中File——new——import Module导入你的opencv,选择sdk下的java目录,在你的项目中进行引用。
ps:导入opencv之后将opencv的compilesdk 跟buildToolsVersion均修改为你项目一致的版本。3、将opencv中sdk——native——libs放到jniLibs,我只复制了下图
补充:jniLibs自动创建只需要在gradle中添加如下代码再build一下。
4、经过上面的操作就可以直接使用opencv了,我用的3.3.0的版本。这里说明opencv的版本是因为尝试了3.3.1的版本不知道为什么同样的操作总是找不到Mat类。
public class CameraResultActivity extends AppCompatActivity
private String mPath;
private ImageView mImageView;
private Bitmap mBitmap;
//OpenCV库静态加载并初始化
static {
boolean load = OpenCVLoader.initDebug();
if (load) {
Log.i("CV", "Open CV Libraries loaded...");
}
}
private void convertGray() {
Mat rgbMat = new Mat();
Mat grayMat = new Mat();
Bitmap grayBitmap = Bitmap.createBitmap( mBitmap .getWidth(), mBitmap .getHeight(), Bitmap.Config.RGB_565);
Utils.bitmapToMat( mBitmap , rgbMat);//convert original bitmap to Mat, R G B.
Imgproc.cvtColor(rgbMat, grayMat, Imgproc.COLOR_RGB2GRAY);//rgbMat to gray grayMat
Utils.matToBitmap(grayMat, grayBitmap); //convert mat to bitmap
mImageView.setImageBitmap(grayBitmap);
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_result);
mImageView = (ImageView) findViewById(R.id.res_imageview);
mPath = getIntent().getStringExtra("picpath");
mBitmap=getBitmapFromPath(mPath);
convertGray();
}
PS:千万不要 看网上的说需要调用
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_3_0,getApplicationContext(),mLoaderCallback);
通过回调成功来操作之类的,上面一行的代码是检测你是否安装了opencvmanager的apk,对目前来讲没什么可以借鉴的。