我的应用程序使用张量流精简模型来检测上传图像中的对象。
因此,我需要在用户上传的图像上绘制对象的边界框。
这是我的activity_camera.xml上传图像的地方。
<ImageView
android:id="@+id/imageView"
android:layout_width="281dp"
android:layout_height="324dp"
android:layout_marginTop="30dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@android:drawable/ic_menu_gallery"
tools:ignore="ImageContrastCheck" />
这里是我运行tflite模型的地方。(CameraActivity.java)
predictBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
img = Bitmap.createScaledBitmap(img, 128, 128, true);
try {
Android model = Android.newInstance(getApplicationContext());
// Creates inputs for reference.
TensorImage image = TensorImage.fromBitmap(img);
// Runs model inference and gets result.
Android.Outputs outputs = model.process(image);
Android.DetectionResult detectionResult = outputs.getDetectionResultList().get(0);
// Gets result from DetectionResult.
float score = detectionResult.getScoreAsFloat();
RectF location = detectionResult.getLocationAsRectF();
String category = detectionResult.getCategoryAsString();
drawDebug(canvas,location);
// Releases model resources if no longer used.
model.close();
// here we will print out the results of the object to text views based on the image that is inputted by the user
// we print out object type and its accuracy score
objecttv.setText(category);
scoretv.setText(Float.toString(score));
} catch (IOException e) {
// TODO Handle the exception
}
}
public void drawDebug(final Canvas canvas, RectF location) {
final Paint boxPaint = new Paint();
boxPaint.setColor(Color.RED);
boxPaint.setAlpha(200);
boxPaint.setStyle(Paint.Style.STROKE);
canvas.drawRect(location, boxPaint);
}
}
);
边界框的绘制不起作用,因为我需要先绘制画布。
为了从视图中获取画布对象,我需要在该视图中修改或创建什么?
视图没有Canvas对象。当在onDraw中绘制视图时,它会传递一个Canvas对象以供使用。这是视图存在Canvas的唯一时间,也是所有绘图必须发生的时间。
相反,你应该做的是使视图无效()。这将告诉视图它需要重新绘制,它将在不久的将来的某个时候调用onDraw。然后将你的绘图代码添加到onDraw。如果需要,将你需要绘制的任何状态存储在视图的成员变量中,这样它就可以在绘制时访问它们。
因为您使用的是ImageView,所以您需要做的是子类ImageView。将新子类添加到xml中。然后覆盖子类的onDraw函数来调用super.onDraw(),然后执行您希望的任何附加绘图。
我正在写一个小烧瓶应用程序来识别手写数字(0-9)。我写了几乎所有的元素(机器学习模型、web应用等),但我在捕捉图像(使用画布绘制)时遇到了问题,比如: 我想获取图像并将其保存到临时文件中。我懂Python,但从未使用过JavaScript,这是使用Canvas所必需的。 HTML: JS: 函数使用浏览器保存管理器保存图像,但我想将其保存到临时文件,稍后再使用图像。
问题内容: 我正在使用Android中的OpenCV库。我有一个实现的类。 覆盖方法如下所示, 正如我希望图像数据可以在图像处理中进一步使用,而不是保存和重新加载图像。 从Byte数组获取Mat对象的最有效方法是什么?我已经尝试过这些方法: 不知道图像发生了什么。 然后转换为位图, 在这种情况下,红色变为蓝色。 在保存图像以备将来使用时,我也没有任何问题,但这导致我出现异常,因为当我使用先前存储的
这是我的布局xml的结构: 当我想显示视图时,我使用
我试图让用户从图库中选择个人资料图片。我的问题是有些图片向右旋转。 我启动图像选择器,如下所示: 我得到的图像从onActivityResult这样: 如何使图像不旋转? 更新: 根据我收到的一些有用的答案,我设法提出了以下可行的解决方案(它只是一个可行的代码,写得不好)。我很想得到你对我如何改进的反馈!
我有RecyclerView,每个行布局都有一个ImageView和一个TextView。在 RecyclerViewAdapter 的 ViewHolder 中,我将单击侦听器设置为 在那个点击侦听器中,我正在更改布尔标志,以便它可以显示一个项目被选中或not.Depending它的值,我想通过检查遍历整个ArrayList
我在我的项目中实现了一个calendarview,我可以获取月份、月份和年份,但我找不到任何方法来获取星期几,我的代码是这样的: 当我在日历中选择一天时,我需要得到一周的时间,我试图得到答案,但我找不到。 对不起我的英语。