2016-07-07 9 views
3

Gegeben ein Bild mit einer bekannten Dimension (zB 14782 x5495 Pixel) und einer gewünschten Quadratgröße (zB Breite, Höhe = 696 Pixel) Größe, wie bekomme ich die Koordinaten von jedem Element im Raster?So bestimmen Sie Koordinaten von Rasterelementen eines Bildes

enter image description here

In Wirklichkeit hat mein Bild kein Raster. Aber ich möchte die Koordinate erhalten, als ob das Gitter wie oben gezeigt existiert.

Die Koordinate ist wie folgt zu definieren:

Die x und y die Koordinaten (in Pixel) der oberen linken Ecke der Auswahl sind. Der Ursprung (0,0) des Koordinatensystems ist die obere linke Ecke des Bildes.

Die Kernmehrzahl der Gitterelementgröße ist für alle gegebenen Eingabebilder festgelegt. (z.B. Quadrat mit der Grße Breite x Höhe = 1000x1000 Pixel). Die Form der umgebenden Elemente des Gitters ist nicht quadratisch, das ist in Ordnung.

So genau wie das Rasterschema wie im Bild oben gezeigt.

Das eigentliche Bild ist downloadable here (160MB).

+1

RowNum = Y/GitterzelleHöhe = Y/696? – MBo

+0

@MBo: Wie wäre es mit X? Können Sie Beispielcode angeben? – neversaint

+0

Sorry, aber Sie sehen keine Analogie? ColNum = X/GridCellWidth = X/696 – MBo

Antwort

7

Scheint, wie das ist, was Sie wollen:

x = [i for i in range(696, 14782, 696) for j in range(696, 5495, 696)] 
y = [j for i in range(696, 14782, 696) for j in range(696, 5495, 696)] 

um es zu testen

import matplotlib.pyplot as plt  
img = imread('04_709_channel-3.tif') 
plt.imshow(img, cmap='gray') 
plt.plot(x, y, 'ro') 

enter image description here

3

Für Bild mit der Breite w, Höhe h und Pixelpufferarray data werden die Pixelkoordinaten bei Index ix = i % w, y = i/w durch gegeben, wobei % Modul und / ganzzahlige Division ist.

EDIT: durch den Index i, ich meine von y zuerst erhöht und dann durch x, dh die inverse Betrieb i = y * w + x ist

+0

Wie können wir 'i' basierend auf Intervall definieren, d. H. Quadratische Größe? – neversaint

+0

Durch Konvention 'i' beginnt von Null in der oberen linken Ecke, erhöht sich um' x'-Koordinate und dann um 'y'-Koordinate –

Verwandte Themen