diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 68c8f76..9abaabd 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -11,13 +11,27 @@ - - + + + + + - - - - + + + + + + + + + + + + + + + + - @@ -125,7 +139,7 @@ - + diff --git a/Prj-Android/app/build.gradle b/Prj-Android/app/build.gradle index 0e2a3a7..0fb31ae 100644 --- a/Prj-Android/app/build.gradle +++ b/Prj-Android/app/build.gradle @@ -41,4 +41,5 @@ dependencies { androidTestImplementation 'androidx.test.ext:junit:1.1.2' androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' implementation 'com.github.smuyyh:ImageSelector:3.0' + implementation 'com.github.bumptech.glide:glide:3.7.0' } \ No newline at end of file diff --git a/Prj-Android/app/release/hyperlpr3-demo.apk b/Prj-Android/app/release/hyperlpr3-demo.apk new file mode 100644 index 0000000..3ca281c Binary files /dev/null and b/Prj-Android/app/release/hyperlpr3-demo.apk differ diff --git a/Prj-Android/app/release/output-metadata.json b/Prj-Android/app/release/output-metadata.json new file mode 100644 index 0000000..71d9496 --- /dev/null +++ b/Prj-Android/app/release/output-metadata.json @@ -0,0 +1,20 @@ +{ + "version": 3, + "artifactType": { + "type": "APK", + "kind": "Directory" + }, + "applicationId": "com.hyperai.hyperlpr_sdk_demo", + "variantName": "release", + "elements": [ + { + "type": "SINGLE", + "filters": [], + "attributes": [], + "versionCode": 1, + "versionName": "1.0", + "outputFile": "app-release.apk" + } + ], + "elementType": "File" +} \ No newline at end of file diff --git a/Prj-Android/app/src/main/java/com/hyperai/hyperlpr_sdk_demo/CameraActivity.java b/Prj-Android/app/src/main/java/com/hyperai/hyperlpr_sdk_demo/CameraActivity.java index 08e8157..3c4ee58 100755 --- a/Prj-Android/app/src/main/java/com/hyperai/hyperlpr_sdk_demo/CameraActivity.java +++ b/Prj-Android/app/src/main/java/com/hyperai/hyperlpr_sdk_demo/CameraActivity.java @@ -48,8 +48,6 @@ public class CameraActivity extends Activity { private void initCamera() { previewFl = findViewById(R.id.preview_fl); plateTv = findViewById(R.id.plate_tv); -// regTv = findViewById(R.id.reg_tv); -// regTv.setOnClickListener(this); image = findViewById(R.id.image); cameraPreview = new CameraPreviews(this); previewFl.addView(cameraPreview); @@ -103,10 +101,4 @@ public class CameraActivity extends Activity { // stopPreview(); } - -// @Override -// public void onClick(View v) { -// CameraPreviews cameraPreview = new CameraPreviews(this); -// previewFl.addView(cameraPreview); -// } } diff --git a/Prj-Android/app/src/main/java/com/hyperai/hyperlpr_sdk_demo/MainActivity.java b/Prj-Android/app/src/main/java/com/hyperai/hyperlpr_sdk_demo/MainActivity.java index e959245..2830aec 100644 --- a/Prj-Android/app/src/main/java/com/hyperai/hyperlpr_sdk_demo/MainActivity.java +++ b/Prj-Android/app/src/main/java/com/hyperai/hyperlpr_sdk_demo/MainActivity.java @@ -4,18 +4,45 @@ import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; import android.app.Activity; +import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Color; import android.os.Bundle; +import android.util.Log; import android.view.View; import android.widget.Button; +import android.widget.ImageView; +import android.widget.TextView; + +import com.bumptech.glide.Glide; +import com.hyperai.hyperlpr3.HyperLPR3; +import com.hyperai.hyperlpr3.bean.Parameter; +import com.hyperai.hyperlpr3.bean.Plate; +import com.yuyh.library.imgsel.ISNav; +import com.yuyh.library.imgsel.common.ImageLoader; +import com.yuyh.library.imgsel.config.ISListConfig; + +import java.util.List; public class MainActivity extends AppCompatActivity { private Button cameraBtn; private Button albumBtn; + private Context mCtx; + private static final int REQUEST_LIST_CODE = 0; + private static final int REQUEST_CAMERA_CODE = 1; + + private final String TAG = "HyperLPR-App"; + + private ImageView imageView; + + private TextView mResult; + HyperLPR3 hyperLPR3; private static final int REQUEST_EXTERNAL_STORAGE = 1; @@ -45,10 +72,25 @@ public class MainActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); + mCtx = this; cameraBtn = findViewById(R.id.cameraBtn); albumBtn = findViewById(R.id.albumBtn); + imageView = findViewById(R.id.imageView); + mResult = findViewById(R.id.mResult); verifyStoragePermissions(this); + + + Parameter parameter = new Parameter(); + hyperLPR3 = new HyperLPR3(mCtx, parameter); + + ISNav.getInstance().init(new ImageLoader() { + @Override + public void displayImage(Context context, String path, ImageView imageView) { + Glide.with(context).load(path).into(imageView); + } + }); + cameraBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -61,8 +103,72 @@ public class MainActivity extends AppCompatActivity { @Override public void onClick(View view) { + // 自由配置选项 + ISListConfig config = new ISListConfig.Builder() + // 是否多选, 默认true + .multiSelect(false) + // 是否记住上次选中记录, 仅当multiSelect为true的时候配置,默认为true + .rememberSelected(false) + // “确定”按钮背景色 + .btnBgColor(Color.GRAY) + // “确定”按钮文字颜色 + .btnTextColor(Color.BLUE) + // 使用沉浸式状态栏 + .statusBarColor(Color.parseColor("#3F51B5")) + // 返回图标ResId + .backResId(androidx.appcompat.R.drawable.abc_cab_background_top_mtrl_alpha) + // 标题 + .title("图片") + // 标题文字颜色 + .titleColor(Color.WHITE) + // TitleBar背景色 + .titleBgColor(Color.parseColor("#3F51B5")) + // 裁剪大小。needCrop为true的时候配置 + .cropSize(1, 1, 200, 200) + .needCrop(false) + // 第一个是否显示相机,默认true + .needCamera(false) + // 最大选择图片数量,默认9 + .maxNum(1) + .build(); + + // 跳转到图片选择器 + ISNav.getInstance().toListActivity(mCtx, config, REQUEST_LIST_CODE); } }); } + + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + Bitmap bitmap = null; + String showText = ""; + // 图片选择结果回调 + if (requestCode == REQUEST_LIST_CODE && resultCode == RESULT_OK && data != null) { + List pathList = data.getStringArrayListExtra("result"); + Log.i(TAG, pathList.get(0)); + bitmap = BitmapFactory.decodeFile(pathList.get(0)); + } else if (requestCode == REQUEST_CAMERA_CODE && resultCode == RESULT_OK && data != null) { + String path = data.getStringExtra("result"); + Log.i(TAG, path); + bitmap = BitmapFactory.decodeFile(path); + } + if (bitmap != null) { + + imageView.setImageBitmap(bitmap); + Plate[] plates = hyperLPR3.plateRecognition(bitmap, HyperLPR3.CAMERA_ROTATION_0, HyperLPR3.STREAM_BGRA); + for (Plate plate: plates) { + String type = "未知车牌"; + if (plate.getType() != HyperLPR3.PLATE_TYPE_UNKNOWN) { + type = HyperLPR3.PLATE_TYPE_MAPS[plate.getType()]; + } + String pStr = "[" + type + "]" + plate.getCode() + "\n"; + showText += pStr; + mResult.setText(showText); + + } + } + } } \ No newline at end of file diff --git a/Prj-Android/app/src/main/res/layout/activity_main.xml b/Prj-Android/app/src/main/res/layout/activity_main.xml index 63cc736..83f0b3e 100644 --- a/Prj-Android/app/src/main/res/layout/activity_main.xml +++ b/Prj-Android/app/src/main/res/layout/activity_main.xml @@ -7,27 +7,51 @@ tools:context=".MainActivity">