博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OpenCV的+安卓+号牌识别(OpenCV + Android + 图像水平矫正)
阅读量:6158 次
发布时间:2019-06-21

本文共 2042 字,大约阅读时间需要 6 分钟。

/** * 价签矫正 */public void getContouresPic (Bitmap source) {    Mat imageSobleOutThreshold = new Mat();    Mat gray = new Mat();    Utils.bitmapToMat(source, imageSobleOutThreshold);    Imgproc.cvtColor(imageSobleOutThreshold, imageSobleOutThreshold, Imgproc.COLOR_BGR2GRAY);    Imgproc.threshold(imageSobleOutThreshold, gray, 125, 225, Imgproc.THRESH_BINARY);//maxVal就是控制黑白反转的,0是黑    //Utils.matToBitmap(gray, source);        ArrayList
rects = new ArrayList
(); ArrayList
contours = new ArrayList
(); Imgproc.findContours(gray, contours, new Mat(), Imgproc.RETR_EXTERNAL, Imgproc.CHAIN_APPROX_NONE); for(int i=0;i
500 && rect.width/rect.height == 1) { MatOfPoint2f mp2f = new MatOfPoint2f(contours.get(i).toArray()); RotatedRect mr = Imgproc.minAreaRect(mp2f); double area = Math.abs(Imgproc.contourArea(mp2f)); double angle = mr.angle+90; Mat ratationedImg = new Mat(gray.rows(), gray.cols(), CvType.CV_8UC3); ratationedImg.setTo(new Scalar(0, 0, 0)); Point center = mr.center;//中心点 Mat m2 = Imgproc.getRotationMatrix2D(center, angle, 1); Imgproc.warpAffine(imageSobleOutThreshold, ratationedImg, m2, imageSobleOutThreshold.size(), 1, 0, new Scalar(0) );//仿射变换 Utils.matToBitmap(ratationedImg, source); File file = new File(Environment.getExternalStorageDirectory()+"/AiLingGong/", "ll"+System.currentTimeMillis()+".jpg"); try { FileOutputStream out = new FileOutputStream(file); source.compress(Bitmap.CompressFormat.JPEG, 100, out); out.flush(); out.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } Log.d("----------------", "旋转角度是:"+angle+"------"+"-----"+mr); } }}

转载地址:http://rosfa.baihongyu.com/

你可能感兴趣的文章
活在当下
查看>>
每天进步一点----- MediaPlayer
查看>>
PowerDesigner中CDM和PDM如何定义外键关系
查看>>
跨域-学习笔记
查看>>
the assignment of reading paper
查看>>
android apk 逆向中常用工具一览
查看>>
MyEclipse 报错 Errors running builder 'JavaScript Validator' on project......
查看>>
Skip List——跳表,一个高效的索引技术
查看>>
Yii2单元测试初探
查看>>
五、字典
查看>>
前端js之JavaScript
查看>>
Log4J日志配置详解
查看>>
实验7 BindService模拟通信
查看>>
scanf
查看>>
Socket编程注意接收缓冲区大小
查看>>
SpringMVC初写(五)拦截器
查看>>
检测oracle数据库坏块的方法
查看>>
SQL server 安装教程
查看>>
Linux下ftp和ssh详解
查看>>
跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击
查看>>