是否可以检测 android 中的自拍图像?
is it possible to detect selfie image in android?
我有来自 MediaStore.images.media
的图像列表。是否可以检测自拍图像?
我看过mlkit Selfie Segmentation,但我猜它是关于改变照片的?
您可以尝试从图像中获取 EXIF 数据并比较一些参数。
如果您希望使用 ExifInterface,请将以下依赖项添加到您的 build.gradle:
implementation "androidx.exifinterface:exifinterface:1.3.3"
之后,您可以按照下一个代码从照片中获取 EXIF 数据:
Uri gfgUri; // the file uri
InputStream gfgIn;
try {
gfgIn = getContentResolver().openInputStream(gfgUri);
ExifInterface exifInterface = new ExifInterface(gfgIn);
// Extract the EXIF tag here
} catch (IOException e) {
// Handle any errors
} finally {
if (gfgIn != null) {
try {
gfgIn.close();
} catch (IOException ignored) {}
}
}
例如,您可以使用照片分辨率来比较稀有照片和正面照片。分辨率通常不同:面向用户的摄像头的分辨率低于背面的摄像头。
我从 gsmarena.com:
中提取的几个例子
- Google Pixel 6 Pro:主要:50 MP;自拍:11.1 MP;
- Apple iPhone SE (2022):主要:12 MP;自拍:7 MP;
- 三星 Galaxy S22 5G:主要:50 MP;自拍:10 MP;
我有来自 MediaStore.images.media
的图像列表。是否可以检测自拍图像?
我看过mlkit Selfie Segmentation,但我猜它是关于改变照片的?
您可以尝试从图像中获取 EXIF 数据并比较一些参数。 如果您希望使用 ExifInterface,请将以下依赖项添加到您的 build.gradle:
implementation "androidx.exifinterface:exifinterface:1.3.3"
之后,您可以按照下一个代码从照片中获取 EXIF 数据:
Uri gfgUri; // the file uri
InputStream gfgIn;
try {
gfgIn = getContentResolver().openInputStream(gfgUri);
ExifInterface exifInterface = new ExifInterface(gfgIn);
// Extract the EXIF tag here
} catch (IOException e) {
// Handle any errors
} finally {
if (gfgIn != null) {
try {
gfgIn.close();
} catch (IOException ignored) {}
}
}
例如,您可以使用照片分辨率来比较稀有照片和正面照片。分辨率通常不同:面向用户的摄像头的分辨率低于背面的摄像头。
我从 gsmarena.com:
中提取的几个例子- Google Pixel 6 Pro:主要:50 MP;自拍:11.1 MP;
- Apple iPhone SE (2022):主要:12 MP;自拍:7 MP;
- 三星 Galaxy S22 5G:主要:50 MP;自拍:10 MP;