├── Part [4] Edge Detecion & Buttons ├── AndroidManifest.xml ├── MainActivity.java └── activity_main.xml ├── README.md ├── [Part 7] Deep Learning Face Detection ├── AndroidManifest.xml ├── MainActivity.java └── activity_main.xml ├── [part 2]Install (and Compile) OpenCV with Android Studio └── AndroidManifest.xml ├── [part 3] Launch Camera & Process frames ├── AndroidManifest.xml ├── MainActivity.java └── activity_main.xml └── [part 5-6] DNN Module and Tiny YOLO ├── AndroidManifest.xml ├── MainActivity.java └── activity_main.xml /Part [4] Edge Detecion & Buttons/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 21 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Part [4] Edge Detecion & Buttons/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.example.androidseries; 2 | 3 | import android.support.v7.app.AppCompatActivity; 4 | import android.os.Bundle; 5 | import android.view.SurfaceView; 6 | import android.view.View; 7 | import android.widget.Toast; 8 | 9 | import org.opencv.android.BaseLoaderCallback; 10 | import org.opencv.android.CameraBridgeViewBase; 11 | import org.opencv.android.JavaCameraView; 12 | import org.opencv.android.OpenCVLoader; 13 | import org.opencv.core.Core; 14 | import org.opencv.core.Mat; 15 | import org.opencv.*; 16 | import org.opencv.core.Point; 17 | import org.opencv.core.Size; 18 | import org.opencv.imgproc.Imgproc; 19 | 20 | 21 | import java.util.Random; 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | public class MainActivity extends AppCompatActivity implements CameraBridgeViewBase.CvCameraViewListener2 { 30 | 31 | CameraBridgeViewBase cameraBridgeViewBase; 32 | BaseLoaderCallback baseLoaderCallback; 33 | boolean startCanny = false; 34 | 35 | 36 | 37 | 38 | 39 | public void Canny(View Button){ 40 | 41 | if (startCanny == false){ 42 | startCanny = true; 43 | } 44 | 45 | else{ 46 | 47 | startCanny = false; 48 | 49 | 50 | } 51 | 52 | 53 | 54 | 55 | } 56 | 57 | 58 | 59 | 60 | 61 | 62 | @Override 63 | protected void onCreate(Bundle savedInstanceState) { 64 | super.onCreate(savedInstanceState); 65 | setContentView(R.layout.activity_main); 66 | 67 | 68 | cameraBridgeViewBase = (JavaCameraView)findViewById(R.id.CameraView); 69 | cameraBridgeViewBase.setVisibility(SurfaceView.VISIBLE); 70 | cameraBridgeViewBase.setCvCameraViewListener(this); 71 | 72 | 73 | //System.loadLibrary(Core.NATIVE_LIBRARY_NAME); 74 | baseLoaderCallback = new BaseLoaderCallback(this) { 75 | @Override 76 | public void onManagerConnected(int status) { 77 | super.onManagerConnected(status); 78 | 79 | switch(status){ 80 | 81 | case BaseLoaderCallback.SUCCESS: 82 | cameraBridgeViewBase.enableView(); 83 | break; 84 | default: 85 | super.onManagerConnected(status); 86 | break; 87 | } 88 | 89 | 90 | } 91 | 92 | }; 93 | 94 | 95 | 96 | 97 | } 98 | 99 | @Override 100 | public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) { 101 | 102 | Mat frame = inputFrame.rgba(); 103 | 104 | if (startCanny == true) { 105 | 106 | Imgproc.cvtColor(frame, frame, Imgproc.COLOR_RGBA2GRAY); 107 | Imgproc.Canny(frame, frame, 100, 80); 108 | 109 | } 110 | 111 | 112 | 113 | return frame; 114 | } 115 | 116 | 117 | @Override 118 | public void onCameraViewStarted(int width, int height) { 119 | 120 | } 121 | 122 | 123 | @Override 124 | public void onCameraViewStopped() { 125 | 126 | } 127 | 128 | 129 | @Override 130 | protected void onResume() { 131 | super.onResume(); 132 | 133 | if (!OpenCVLoader.initDebug()){ 134 | Toast.makeText(getApplicationContext(),"There's a problem, yo!", Toast.LENGTH_SHORT).show(); 135 | } 136 | 137 | else 138 | { 139 | baseLoaderCallback.onManagerConnected(baseLoaderCallback.SUCCESS); 140 | } 141 | 142 | 143 | 144 | } 145 | 146 | @Override 147 | protected void onPause() { 148 | super.onPause(); 149 | if(cameraBridgeViewBase!=null){ 150 | 151 | cameraBridgeViewBase.disableView(); 152 | } 153 | 154 | } 155 | 156 | 157 | @Override 158 | protected void onDestroy() { 159 | super.onDestroy(); 160 | if (cameraBridgeViewBase!=null){ 161 | cameraBridgeViewBase.disableView(); 162 | } 163 | } 164 | } 165 | -------------------------------------------------------------------------------- /Part [4] Edge Detecion & Buttons/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 18 | 19 |