Come catturare un'image in android con le coordinate

Sono nuovo a android, e vorrei mettere il mio problema davanti a te,

Vorrei catturare un'image tra le quattro coordinate, come qui sotto.

  • Debug progetto di libreria Android con codice sorgente Java
  • Limiti della memory grafica Android
  • Provider di contenuti Android senza SQL
  • Lazy Caricamento in gridview
  • Tema Android che non influenza TextViews all'interno della voce di elenco
  • Quando è effettivamente utilizzato il bundle savedInstanceState?
  • immettere qui la descrizione dell'immagine

    Innanzitutto, converto l'image in bitmap e poi impostata come background in un layout relativo. E so queste quattro coordinate.

    Allora come posso get l'image all'interno della casella e impostarla in un altro layout come background.

    I ragazzi mi lasciano uscire da questa logica ….

  • Android: come impostare programmaticamente la width di ImageView all'interno di TableRow
  • Come rendere un'applicazione compatibile in tutti i telefoni Android?
  • twitter4j nessuna sfida di authentication trovata
  • Come disconnettersi da un account Google+?
  • Android Visualizza ombra
  • Crea una notifica Android con la data di scadenza
  • 3 Solutions collect form web for “Come catturare un'image in android con le coordinate”

    finalmente trovo la soluzione al mio problema e io wana condividerlo con te,

    prima di tutto, questo è fatto sulla base della teoria della trasformazione a livello +12. Ok, il mio problema è risolto con l'aiuto di "OpenCv per Android"

    questo è il codice ..

    public class MainActivity extends Activity implements CvCameraViewListener2,OnTouchListener { Bitmap sourceBitmap,descBitmap,sourceBitmap1; ImageView view,view2; SurfaceView amSurfaceView ; Mat mRgba; private CameraBridgeViewBase mOpenCvCameraView; private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) { @Override public void onManagerConnected(int status) { switch (status) { case LoaderCallbackInterface.SUCCESS: { Log.i("Yesssssssss", "OpenCV loaded successfully"); mOpenCvCameraView.enableView(); } break; default: { super.onManagerConnected(status); } break; } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // initialise bitmap for crop is here Bitmap bitmap_source=BitmapFactory.decodeResource(getResources(), R.drawable.quadone); if(bitmap_source==null) Log.e("bitmap Null","nulllllll"); // these values should not exceed the limits of bitmap.. Log.e("Bitmap"," "+bitmap_source.getWidth()+" "+bitmap_source.getHeight()); sourceBitmap =BitmapFactory.decodeResource(getResources(), R.drawable.quadone); sourceBitmap1 =BitmapFactory.decodeResource(getResources(), R.drawable.quadone); descBitmap =BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher); view = (ImageView) findViewById(R.id.imageView1); view2=(ImageView) findViewById(R.id.imageView2); view.setImageBitmap(sourceBitmap1); view.setOnTouchListener(this); mOpenCvCameraView = (CameraBridgeViewBase) findViewById(R.id.color_blob_detection_activity_surface_view); mOpenCvCameraView.setCvCameraViewListener(this); Log.e("MAtt","Startttttttttmmmmmmmmmtttttttt"); sourceBitmap =bitmap_source; if (!OpenCVLoader.initDebug()) { // Handle initialization error } Mat inputMat = new Mat(); Mat outputMat = new Mat(); descBitmap=sourceBitmap; Utils.bitmapToMat(sourceBitmap, inputMat); List<Point> src_pnt = new ArrayList<Point>(); Point p0 = new Point(0, 0); src_pnt.add(p0); Point p1 = new Point(10, 100); src_pnt.add(p1); Point p2 = new Point(100, 125); src_pnt.add(p2); Point p3 = new Point(90, 20); src_pnt.add(p3); Mat startM = Converters.vector_Point2f_to_Mat(src_pnt); List<Point> dst_pnt = new ArrayList<Point>(); Point p4 = new Point(0.0, 0.0); dst_pnt.add(p4); Point p5 = new Point(0.0, sourceBitmap.getHeight()); dst_pnt.add(p5); Point p6 = new Point(sourceBitmap.getWidth(), sourceBitmap.getHeight()); dst_pnt.add(p6); Point p7 = new Point(sourceBitmap.getWidth(), 0); dst_pnt.add(p7); Mat endM = Converters.vector_Point2f_to_Mat(dst_pnt); Mat perspectiveTransform = Imgproc.getPerspectiveTransform(startM, endM); Size size = new Size(sourceBitmap.getWidth(), sourceBitmap.getHeight()); Scalar scalar = new Scalar(50.0); Imgproc.warpPerspective(inputMat, outputMat, perspectiveTransform, size, Imgproc.INTER_LINEAR + Imgproc.CV_WARP_FILL_OUTLIERS, Imgproc.BORDER_DEFAULT, scalar); Log.e("1=",""+inputMat.cols()+" "+inputMat.rows()); Log.e("outmat.."," "+outputMat.cols()+" "+outputMat.rows()); Utils.matToBitmap(outputMat, descBitmap); view2.setImageBitmap(descBitmap); // ram@san } @Override public void onCameraViewStarted(int width, int height) { // TODO Auto-generated method stub Log.e("onCameraViewStarted","onCameraViewStarted"); } @Override public void onCameraViewStopped() { // TODO Auto-generated method stub Log.e("onCameraViewStopped","onCameraViewStopped"); } @Override public Mat onCameraFrame(CvCameraViewFrame inputFrame) { // TODO Auto-generated method stub mRgba= new Mat(); Utils.bitmapToMat(sourceBitmap, mRgba); Utils.matToBitmap(mRgba, descBitmap); view2.setImageBitmap(sourceBitmap); return mRgba; } @Override public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub return false; } } 

    se qualcuno ha dubbi, si prega di piazzarlo qui ..

    avere un codding felice, Ram ..

    come per get l'image all'interno delle coordinate

     Bitmap croppedBmp = Bitmap.createBitmap(originalBmp, startx, starty, endx, endy); 

    questo creerà una bitmap ritagliata come la tua dopo

    Questo (probabilmente) creerà un'image da 4, 5, 6 ecc. Che si sceglie manualmente sul ImageView per get. Questo dovrebbe funzionare su più di 4 punti selezionati.

     @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ImageView imageView = (ImageView) findViewById(R.id.img); compositeImageView = (ImageView) findViewById(R.id.imageView); Bitmap bitmap1=BitmapFactory.decodeResource(getResources(), R.drawable.drawable_android); Bitmap bitmap2=BitmapFactory.decodeResource(getResources(), R.drawable.drawable_android_cr); Bitmap resultingImage=Bitmap.createBitmap(320, 480, bitmap1.getConfig()); Canvas canvas = new Canvas(resultingImage); Paint paint = new Paint(); paint.setAntiAlias(true); Path path=new Path(); imageView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN){ // textView.setText("Touch coordinates : " +String.valueOf(event.getX()) + "x" + String.valueOf(event.getY())); Log.e("X",String.valueOf(event.getX())+""); Log.e("y",String.valueOf(event.getY())+""); path.lineTo(String.valueOf(event.getX()), String.valueOf(event.getY())); } if(/*Touch count == 4 or 5 or 6 etc.*/){ canvas.drawPath(path, paint); paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); canvas.drawBitmap(bitmap2, 0, 0, paint); compositeImageView.setImageBitmap(resultingImage); return true; } } }); } 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.