影像的鏡像變化不會改變影像的形狀。影像的鏡像變換分為三種:水平鏡像、垂直鏡像、對角鏡像
設影像的大小為M×N,則
水平鏡像可依公式
I = i
J = N - j + 1
#垂直鏡像可依公式
I = M - i + 1
J = j
對角線鏡像可依公式
I = M - i + 1
#J = N - j + 1
值得注意的是OpenCV中座標是從[0,0]開始的
所以,式中的+1 在程式#時需要改為-1
這裡運行環境為:
Python為:Python2.7.6
OpenCV2.4.10版
numpy為:numpy-1.9.1-win32-superpack-python2.7
下面的程式碼仍以baby美圖為例具體程式如下:
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)
以上是python中鏡像實作方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!