In meinem benutzerdefinierten Detektor möchte ich Bild von Rahmen in Hälften teilen, um sie getrennt zu verarbeiten. Dies ist, was ich in meiner Gewohnheit so weit gekommen Detector
:Teilen google-vision frame in zwei
val imageArray = frame?.grayscaleImageData?.array()
val upperImageBuffer = ByteBuffer
.allocate(imageArray?.size ?: 0)
.put(imageArray, 0, imageArray?.size?.div(2) ?: 0)
val upperFrame = Frame.Builder().
setImageData(upperImageBuffer,
frame?.metadata?.width ?: 0,
frame?.metadata?.height?.div(2) ?: 0,
frame?.metadata?.format ?: 16).
setRotation(frame?.metadata?.rotation ?: 0).
build()
val lowerFrame... etc
val upperDetections = delegateDetector.detect(upperFrame)
upperDetections.forEach { key, barcode ->
if (barcode is Barcode) results.append(key, barcode)
}
val lowerDetections = delegateDetector.detect(lowerFrame) etc.
Bisher habe ich den gleichen Detektor auf beide verwenden (dies tatsächlich ist zu überprüfen, ob ich werde mehr Ergebnisse erkennen als in ganzen Rahmen - so dumm wie es klingt, aber ich lasse die Frage so wie sie ist, denn vielleicht müsste jemand in Zukunft einen Teil des Bildes von einem Detektor und einen anderen von einem anderen verarbeiten lassen.
Noch ist das Problem: Ich bekomme die gleichen Ergebnisse für beide Hälften und tatsächlich die gleichen wie aus dem ursprünglichen Rahmen. Was mache ich falsch?
yeah, im Grunde habe ich gerade herausgefunden, dass ich mich total geirrt habe, was in meinem Code vorgeht, also muss ich die Frage neu formulieren. Vielleicht morgen, jetzt viel Arbeit, leider. Das war es, was ich am Ende benutzt habe. – Antek