Heim  >  Artikel  >  Backend-Entwicklung  >  Spiegelimplementierungsmethode in Python

Spiegelimplementierungsmethode in Python

PHPz
PHPzOriginal
2017-04-02 13:50:075452Durchsuche

Das Spiegeln eines Bildes verändert nicht die Form des Bildes. Es gibt drei Arten von Bildspiegelungstransformationen: horizontale Spiegelung, vertikale Spiegelung und diagonale Spiegelung

Angenommen, die Größe des Bildes beträgt M×N, dann

kann die horizontale Spiegelung entsprechend durchgeführt werden Formel

I = i

J = N - j + 1

Vertikale Spiegelung kann nach der Formel

I = M - i + berechnet werden 1

J = j

Diagonale Spiegelung kann nach der Formel

I = M - i + 1

J = N - j + berechnet werden 1

Es ist erwähnenswert, dass in OpenCV die mittlere Koordinate bei [0,0] beginnt

Also muss +1 in der Formel in -1 geändert werden, wenn Programmierung

Die laufende Umgebung hier ist:

Python ist: Python2.7.6
OpenCV2.4.10-Version
numpy ist: numpy-1.9 .1-win32-superpack-python2.7

unten Der Code verwendet weiterhin Babybilder als Beispiel. Die spezifische Vorgehensweise ist wie folgt:

import cv2.cv as cv
image = cv.LoadImage('angelababy.jpg',1)
size = (image.width,image.height)
iUD = cv.CreateImage(size,image.depth,image.nChannels)
iLR = cv.CreateImage(size,image.depth,image.nChannels)
iAcross = cv.CreateImage(size,image.depth,image.nChannels)
h = image.height
w = image.width
for i in range(h):
  for j in range(w):
    iUD[h-1-i,j] = image[i,j]
    iLR[i,w-1-j] = image[i,j]
    iAcross[h-1-i,w-1-j] = image[i,j]
cv.ShowImage('image',image)
cv.ShowImage('iUD',iUD)
cv.ShowImage('iLR',iLR)
cv.ShowImage('iAcross',iAcross)
cv.WaitKey(0)

Spiegelimplementierungsmethode in Python

Das obige ist der detaillierte Inhalt vonSpiegelimplementierungsmethode in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn