【发布时间】:2015-06-21 04:35:24
【问题描述】:
可能这个问题可能是重复的。但我发现很难得到答案,因为我是 OpenCV 和 Canvas 绘图的新手,这是我的代码
List<Point> pts = new ArrayList<Point>();
Converters.Mat_to_vector_Point(MatOfPoint, pts);
我得到正确的列表,其中点抽象 org.opencv.core.Point。 现在我正在使用正确的 MatOfPoint 将这些点转换为 android.graphics.Point 坐标。
android.graphics.Point pt1 = new android.graphics.Point((int) pts.get(0).x, (int) pts.get(0).y);
得到这个后,我正在尝试使用 android.graphics.Point 绘制 Canvas,但坐标与图像坐标不匹配。检查下面给出的代码。
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL_AND_STROKE);
paint.setStrokeWidth(3);
paint.setAntiAlias(true);
paint.setDither(true);
paint.setColor(Color.parseColor("#55000000"));
paint.setStyle(Paint.Style.FILL);
paint.setStrokeJoin(Paint.Join.ROUND);
paint.setStrokeWidth(5);
canvas.drawPaint(paint);
canvas.drawLine(point1.x,point1.y, point2.x, point2.y, paint);
}
使用从openCV坐标检测到的正方形绘制的画布与画布点坐标不匹配。我是否需要用像素或图像密度来操作点?任何帮助将不胜感激。 谢谢
【问题讨论】:
标签: android opencv canvas graphics