aggiungere la piccola image della filigrana alla grande image opencv4android

Ho cercato di aggiungere un'image all'image di grandi size nella posizione desiderata. Ho trovato un modo per aggiungere la filigrana in opencv facendo addWeighted (src, alpha, acqua, -, dst, -), ma il problema è che sia la filigrana che l'image di superficie devono avere le stesse size che non voglio.

Trovato un altro modo (credo)

  • Non avvolgere il text in Android TextView in un periodo in abbreviazione
  • Come regolare la dimensione del carattere di text per adattarla
  • Attributi personalizzati nei frammenti Android
  • Come disabilitare / abilitare i pulsanti positivi negativi di dialogo?
  • Come mantenere il rapporto di aspetto sui pulsanti di image in android?
  • INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES sull'installazione di adb
  • Mat srcMat = cvCanvasImage.submat(top/2, (top + height)/2, left/2, (left + width)/2); Imgproc.cvtColor(mat, srcMat, Imgproc.COLOR_GRAY2BGR,4); 

    Ma non capisco come fare questo?

    Grazie..

    AGGIORNARE

      Mat cvCanvasImage = Highgui.imread(Environment.getExternalStorageDirectory() + "/wallpapers/castle.jpg"); // Small watermark image Mat cvWaterImage = Highgui.imread(Environment.getExternalStorageDirectory() +"/square.png"); Size canvasSize = cvWaterImage.size(); int rows = (int) canvasSize.height; int cols = (int) canvasSize.width; int left = 0; int top = 0; int width = rows; int height = cols; Rect ROI = new Rect(left, top, width, height); Core.addWeighted(cvCanvasImage.submat(ROI), alpha, cvWaterImage, beta, 0, cvCanvasImage.submat(ROI)); //now it throws me this error "error: (-209) The operation is neither 'arrays op arrays' (where arrayss have the same size and the same number of channels), nor 'arrays op scalar', nor 'scalar op arrays' in function void cv::arithm_op(const cv::_InputArray&, const cv::_InputArray&, const cv::_OutputArray&, const cv::_InputArray&, int, void (**)(const uchar*, size_t, const uchar*, size_t, uchar*, size_t, cv::Size, void*), bool, void*)" 

  • SOAP - Risposta XML molto grande - OutOfMemoryError
  • L'esecuzione non è rioutput per l'attività: ': app: mergeDebugResources'. Android Studio
  • Affrontare il killer Samsung SPCM
  • Come aprire il cassetto di navigazione sul clic del button nel frammento principale?
  • Librerie di grafici di Android
  • Come posso evitare l'aggiornamento delle notifiche lampeggiante durante la modifica del button
  • 2 Solutions collect form web for “aggiungere la piccola image della filigrana alla grande image opencv4android”

    Ho trovato un modo per farlo bene.

     Mat b = Highgui.imread(Environment.getExternalStorageDirectory() + "/castle.jpg"); // Small watermark image Mat a = Highgui.imread(Environment.getExternalStorageDirectory() +"/square.png"); Mat bSubmat = b.submat(a.rows(), a.rows()*2, a.cols(), a.cols()*2); a.copyTo(bSubmat); Highgui.imwrite("mnt/sdcard/SubmatCopyToTest.png", b); 

    Qualcosa di simile dovrebbe funzionare:

     Mat waterMark = new Mat(width, height); //assumed as a smaller image than your source mat, with size (width, height). Rect ROI = new Rect(x, y, width, height); // Position and size of your watermark; Core.addWeighted(source.submat(ROI), alpha, waterMark, beta, gamma, source.submat(ROI)); 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.