本文執行個體講述了python影像處理之鏡像實現方法。分享給大家供大家參考。具體分析如下:
映像的鏡像變化不改變映像的形狀。映像的鏡像變換分為三種:水平鏡像、垂直鏡像、對角鏡像
設映像的大小為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版(可到http://sourceforge.net/projects/opencvlibrary/files/opencv-win/下載)
numpy為:numpy-1.9.1-win32-superpack-python2.7(可到http://sourceforge.net/projects/numpy/files/NumPy/1.9.1/下載)
下面的代碼仍以baby美圖為例具體程式如下:
import cv2.cv as cvimage = 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.heightw = image.widthfor 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程式設計有所協助。