主页 > M生活派 >[Android] Android Stutio OPENC >

[Android] Android Stutio OPENC

2020-05-22 03:04

此篇只使用霍夫曼圆公式找圆

Bitmap图片取得方法请看这篇:

Bitmap图片绘製篇

OPENCV安装请看这篇:

OPENCV安装

示範

JAVA

Bitmapp = ((BitmapDrawable) ig.getDrawable()).getBitmap();//取得Bitmap图片Utils.bitmapToMat(Bitmapp, mat);//将bitmap图片转换成Mat格式Imgproc.cvtColor(mat, grayMat, Imgproc.COLOR_RGB2GRAY);//将彩度图转化为灰度图PS:霍夫曼规定要用灰度图double dp = 1;//辨识率1是最大double minDist = 10;//最小同心圆距离double param1 = 100;//圆半径包含的Pixel值上限double param2 = 50;//圆半径包含的Pixel值下限int minRadius = 10;//最小元半径範围int maxRadius = 20;//最大元半径範围Mat circles = new Mat(Bitmapp.getWidth(), Bitmapp.getHeight(), CvType.CV_8UC1);//创建Mat画布,宽和高依照Bitmap图片Imgproc.HoughCircles(grayMat, circles, Imgproc.CV_HOUGH_GRADIENT, dp, minDist, param1, param2, minRadius, maxRadius);//霍夫曼圆公式int radius = 0;//利用迴圈找出图片中的圆if (circles.cols() != 0) {try {for (int ig = 0; ig <= Math.min(circles.cols(), 100); ig++) {//可以控制要抓出的圆数量double circleVec[] = circles.get(0, ig);Point center = new Point((int) circleVec[0], (int) circleVec[1]);//圆心radius = (int) circleVec[2];//圆周Imgproc.circle(mat, center, radius, new Scalar(255, 255, 0), 1);//画圆周(MAT画布/圆心/圆周/颜色/粗细)Imgproc.circle(mat, center, 1, new Scalar(100, 100, 50), 1);//画圆心(MAT画布/圆心/圆周/颜色/粗细)}//try{}catch()必加不可省略} catch (Exception e) {}}Utils.matToBitmap(mat, Bitmapp);//转换Mat图片回Bitmap图片ig.setImageBitmap(Bitmapp);//设置Bitmap图片到ImageView元件里面

展示

相关文章:

[Android] Android 学习总集mat图片bitmappimgprocintbitmapigcirclesdouble

当前阅读:[Android] Android Stutio OPENC

上一篇:

下一篇:

热点资讯

时尚图库

猜你喜欢

历史资讯: