Android opencv 图片处理
2016-09-09 11:07
459 查看
两张图片对比
private void matchBitmaps(){
Mat srcMat=new Mat();
Mat endMat=new Mat();
Mat output = new Mat();
Mat srcMask = new Mat();
Mat endMask = new Mat();
MatOfKeyPoint srcKeyPoint = new MatOfKeyPoint();
MatOfKeyPoint endKeyPoint = new MatOfKeyPoint();
MatOfDMatch matches = new MatOfDMatch();
Utils.bitmapToMat(srcBitmap, srcMat);
Utils.bitmapToMat(endBitmap, endMat);
Imgproc.cvtColor(srcMat, srcMat, Imgproc.COLOR_RGB2GRAY);
Imgproc.cvtColor(endMat, endMat, Imgproc.COLOR_RGB2GRAY);
FeatureDetector endDetector = FeatureDetector
.create(FeatureDetector.ORB);
endDetector.detect(endMat, endKeyPoint);
DescriptorExtractor endDescriptor = DescriptorExtractor
.create(DescriptorExtractor.ORB);
endDescriptor.compute(endMat, endKeyPoint, endMask);
FeatureDetector srcDetector = FeatureDetector
.create(FeatureDetector.ORB);
srcDetector.detect(srcMat, srcKeyPoint);
DescriptorExtractor srcDescriptor = DescriptorExtractor
.create(DescriptorExtractor.ORB);
srcDescriptor.compute(srcMat, srcKeyPoint, srcMask);
DescriptorMatcher descriptormatcher = DescriptorMatcher
.create(DescriptorMatcher.BRUTEFORCE_HAMMING);
descriptormatcher.match(srcMask, endMask, matches);
Features2d.drawMatches(srcMat,srcKeyPoint,endMat, endKeyPoint, matches, output);
Bitmap matchBitmap= Bitmap.createScaledBitmap(srcBitmap, output.width(),output.height(), false);
Utils.matToBitmap(output, matchBitmap);
image1.setImageBitmap(matchBitmap);
}
边缘检测
Mat rgbMat = new Mat();
Mat grayMat = new Mat();
Bitmap grayBitmap = Bitmap.createBitmap(srcBitmap.getWidth(), srcBitmap.getHeight(), Bitmap.Config.ARGB_8888);
Utils.bitmapToMat(srcBitmap, rgbMat);
Imgproc.Canny(rgbMat, grayMat,0,150);
Utils.matToBitmap(grayMat, grayBitmap);
高斯模糊
Mat rgbMat = new Mat();
Mat grayMat = new Mat();
Bitmap grayBitmap = Bitmap.createBitmap(srcBitmap.getWidth(), srcBitmap.getHeight(), Bitmap.Config.RGB_565);
Utils.bitmapToMat(srcBitmap, rgbMat);
Imgproc.cvtColor(rgbMat, grayMat,type);
Utils.matToBitmap(grayMat, grayBitmap);
后面有时间在继续做吧
private void matchBitmaps(){
Mat srcMat=new Mat();
Mat endMat=new Mat();
Mat output = new Mat();
Mat srcMask = new Mat();
Mat endMask = new Mat();
MatOfKeyPoint srcKeyPoint = new MatOfKeyPoint();
MatOfKeyPoint endKeyPoint = new MatOfKeyPoint();
MatOfDMatch matches = new MatOfDMatch();
Utils.bitmapToMat(srcBitmap, srcMat);
Utils.bitmapToMat(endBitmap, endMat);
Imgproc.cvtColor(srcMat, srcMat, Imgproc.COLOR_RGB2GRAY);
Imgproc.cvtColor(endMat, endMat, Imgproc.COLOR_RGB2GRAY);
FeatureDetector endDetector = FeatureDetector
.create(FeatureDetector.ORB);
endDetector.detect(endMat, endKeyPoint);
DescriptorExtractor endDescriptor = DescriptorExtractor
.create(DescriptorExtractor.ORB);
endDescriptor.compute(endMat, endKeyPoint, endMask);
FeatureDetector srcDetector = FeatureDetector
.create(FeatureDetector.ORB);
srcDetector.detect(srcMat, srcKeyPoint);
DescriptorExtractor srcDescriptor = DescriptorExtractor
.create(DescriptorExtractor.ORB);
srcDescriptor.compute(srcMat, srcKeyPoint, srcMask);
DescriptorMatcher descriptormatcher = DescriptorMatcher
.create(DescriptorMatcher.BRUTEFORCE_HAMMING);
descriptormatcher.match(srcMask, endMask, matches);
Features2d.drawMatches(srcMat,srcKeyPoint,endMat, endKeyPoint, matches, output);
Bitmap matchBitmap= Bitmap.createScaledBitmap(srcBitmap, output.width(),output.height(), false);
Utils.matToBitmap(output, matchBitmap);
image1.setImageBitmap(matchBitmap);
}
边缘检测
Mat rgbMat = new Mat();
Mat grayMat = new Mat();
Bitmap grayBitmap = Bitmap.createBitmap(srcBitmap.getWidth(), srcBitmap.getHeight(), Bitmap.Config.ARGB_8888);
Utils.bitmapToMat(srcBitmap, rgbMat);
Imgproc.Canny(rgbMat, grayMat,0,150);
Utils.matToBitmap(grayMat, grayBitmap);
高斯模糊
Mat rgbMat = new Mat();
Mat grayMat = new Mat();
Bitmap grayBitmap = Bitmap.createBitmap(srcBitmap.getWidth(), srcBitmap.getHeight(), Bitmap.Config.RGB_565);
Utils.bitmapToMat(srcBitmap, rgbMat);
Imgproc.cvtColor(rgbMat, grayMat,type);
Utils.matToBitmap(grayMat, grayBitmap);
后面有时间在继续做吧
相关文章推荐
- Android Jni OpenCV图片灰度处理
- Android OpenCV简单图片处理,不需要安装Manager,不需要ndk,简单实用
- 在Android中使用OpenCv 来处理图片
- android中opencv操作图片像素----之图像灰度处理
- Android图片处理的的一些方法 - ORIETech
- android 图片放大处理
- 在标准window窗口下,显示opencv处理过的图片
- android 处理图片资源
- Android 图片透明度处理代码
- Android Bitmap 图片处理细节
- Android的TextView使用Html来处理图片显示、字体样式、超链接等
- Android的TextView/EditText使用CharacterStyle&SpannableString来处理图片显示、字体样式、超链接等
- Android中几种图像特效处理的小技巧,比如圆角,倒影,还有就是图片缩放,Drawable转化为Bitmap,Bitmap转化为Drawable等等
- 转:在标准window窗口下,显示opencv处理过的图片
- Android处理图片透明度并绘画图片
- Android图片处理的的一些方法
- Android 图片透明度处理代码
- Android 图片透明度处理代码
- Android的Btimap处理大图片解决方法
- Opencv 图片的初步处理——平滑处理