Wie erstelle ich ein Array, das ein Vielfaches des Originals ist?Python

Python-Programme
Anonymous
 Wie erstelle ich ein Array, das ein Vielfaches des Originals ist?

Post by Anonymous »

Ich versuche, OpenCV-Bilder in Python so zu vergrößern, dass die einzelnen Pixel um einen ganzzahligen Faktor verteilt werden. Ich verwende dies, um tiefe Details visuell zu untersuchen und einzelne Pixelwerte zu sehen (in diesem Fall mit cv2.imshow).
Zum Beispiel ein Array:

Code: Select all

    [[1,2],
[3,4]]

Und ein Faktor von 2 bedeutet, dass ich Folgendes erhalten würde:

Code: Select all

    [[1,1,2,2],
[1,1,2,2],
[3,3,4,4],
[3,3,4,4]]

Ich habe dies getan, indem ich mit np.zeros ein Array von size*factor generiert, dann jeden Punkt im ursprünglichen Array iteriert und ihn beispielsweise mit
in das Zielarray kopiert habe

Code: Select all

for y in range(src.shape[0]):
for x in range(src.shape[1]):
tgt[y*f:y*f+f, x*f:x*f+f, :] = src[y,x,:]
Aber wie Sie sich vorstellen können, ist es nicht der schnellste Ansatz, und ich hoffe, dass ich einfach nicht das Richtige finde.
OpenCV (und PIL) verfügen nicht über eine Größenänderungsfunktion, die nicht mit der einen oder anderen Methode interpoliert, was an sich schon seltsam erscheint.
Ich habe mir Numpy Broadcast*, Numpy Stride_trickks und OpenCV angesehen und es ausprobiert Funktionen, PIL-Funktionen.
Die halbmanuelle Methode funktioniert, solange ich keine Interaktivität benötige, aber ich versuche, Parameter an mehrere OpenCV-Funktionen schnell anzupassen, damit ich die richtigen Kombinationen zur Lösung meines Problems finden kann. (Das ist urheberrechtlich geschützt, daher kann ich keine Bilder weitergeben...) Es ist kontraproduktiv, eine längere Zeit zwischen den Ergebnissen zu warten.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post