android - 在 openCV 2.4.9 中保存具有自定义名称的图像
问题描述
我想从https://eaglesky.github.io/2015/12/26/HandGestureRecognition/修改应用程序。这是一个识别手语的应用程序。当我添加一个新手势时,它会转到文件名为 1,2,3,4,5.jpg 等的 mydataset 文件夹。我想要的是在保存手势之前制作自定义名称。
编辑:完整代码在上面的链接上,位于 app>java>com.example.newdemo>MainActivity
这是代码
boolean savePicture()
{
Mat img;
if (((mode == BACKGROUND_MODE) || (mode == SAMPLE_MODE)
|| (mode == TRAIN_REC_MODE)) || (mode == ADD_MODE) ||
(mode == TEST_MODE)) {
Imgproc.cvtColor(rgbaMat, bgrMat, Imgproc.COLOR_RGBA2BGR, 3);
img = bgrMat;
} else if (mode == DETECTION_MODE) {
img = binMat;
} else
img = null;
if (img != null) {
if (!isExternalStorageWritable()) {
// Toast.makeText(getApplicationContext(), "External storage is not writable!", Toast.LENGTH_SHORT).show();
return false;
}
File path;
String filename;
if (mode != ADD_MODE) {
path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
filename = "image_" + imgNum + ".jpg";
} else {
path = storeFolder;
filename = curLabel + ".jpg";
}
imgNum++;
File file = new File(path, filename);
Boolean bool = false;
filename = file.toString();
bool = Highgui.imwrite(filename, img);
if (bool == true) {
// Toast.makeText(getApplicationContext(), "Saved as " + filename, Toast.LENGTH_SHORT).show();
Log.d(TAG, "Succeed writing image to" + filename);
} else
Log.d(TAG, "Fail writing image to external storage");
return bool;
}
return false;
}
解决方案
推荐阅读
- r - 使用 dplyr 计算子集内子集的比率
- c# - Gremlin cosmos:如何在重复命令中将边缘的属性值复制为顶点属性
- java - 在移动设备中显示背景良好,但在 bluestacks 中显示白色背景
- sql - 通过连接或其他方式根据匹配的 ID 在表列中填充空行
- mysql - 如何使用 MySQL 中大型数据集的 COUNT() 重新定义慢速 SQL 查询
- flutter - 收听 Firestore 集合怎么可能允许访问我不应该访问的数据?
- python - Python Dataframe:如何将列值与相邻列值映射?
- android - Android deeplink - don't show intent chooser popup, force open app
- mule - Mule 消息的哪一部分被认为是不可变的?
- python - Python中键值对的排列