我正在探索android vision api并遵循android开发者文档中提供的github示例。示例应用程序正在检测面部。
我想裁剪每个检测到的面孔。 我有一个 rect obj ,有左,上,右,下坐标。
但我缺少源位图来裁剪脸部。
我做过的事情:
1.使用此SOF post
中给出的自定义检测器此处myFaceDetector的 SparseArray检测(帧帧)方法被重复调用,并且没有检测到面部。处理器集未被调用。 我使用下面的代码
FaceDetector detector = new FaceDetector.Builder(context)
.setClassificationType(FaceDetector.ALL_CLASSIFICATIONS)
.build();
MyFaceDetector myFaceDetector = new MyFaceDetector(detector);
myFaceDetector.setProcessor(new MultiProcessor.Builder<>(new GraphicFaceTrackerFactory())
.build());
mCameraSource = new CameraSource.Builder(context, myFaceDetector)
.setRequestedPreviewSize(640, 480)
.setFacing(CameraSource.CAMERA_FACING_FRONT)
.setRequestedFps(2.0f)
.build();
在相机预览开始后,不会调用GraphicFaceTrackerFactory()。
2.想要将相机图片作为源位图拍摄,但却连续拍照。
任何帮助都会非常有用。提前谢谢。
答案 0 :(得分:0)
我想裁剪每个检测到的面孔。我有一个rect obj,有左,上,右,下坐标。
一旦检测到面部,您可以使用Face.getPosition(),Face.getHeight()和Face.getWidth()
获取面部的位置和尺寸这里myFaceDetector的SparseArray detect(Frame frame)方法被重复调用,并且没有检测到面
您是否尝试过设置正确的方向?在Frame.Builder中,添加int Rechner() {
int Betrag;
int ZweiEuro = 0;
int EinEuro = 0;
int FuenfzigCent = 0;
int ZwanzigCent = 0;
int ZehnCent = 0;
int FuenfCent = 0;
int ZweiCent = 0;
int EinCent = 0;
cin >> Betrag;
cout << "Die kleinse Menga an Muenzen um ihren Betrag zu bezahlen ist:" << endl << endl << endl;
ZweiEuro + 2;
cout << "2.00 = " << ZweiEuro << endl;
cout << "1.00 = " << EinEuro << endl;
cout << "0.50 = " << FuenfzigCent << endl;
cout << "0.20 = " << ZwanzigCent << endl;
cout << "0.10 = " << ZehnCent << endl;
cout << "0.05 = " << FuenfCent << endl;
cout << "0.02 = " << ZweiCent << endl;
cout << "0.01 = " << EinCent << endl << endl << endl << endl << endl << endl;
cout << "[Enter] druecken um zu beenden.";
cin.sync();
cin.get();
return 0;
,其中setRotation(ROT)
是一个带有以下任何值的int:0,1,2或3(分别代表0,90,180和270 degs。)。这在你引用的答案中作为注释提到:)
但我缺少裁剪源的Bitmap。
可以从当前帧生成位图
ROT
作为附注,CamerSource类有可用的代码,尽管在邻居示例中:BarCode Reader