本文實例講述了python圖像處理之鏡像實現(xiàn)方法。分享給大家供大家參考。具體分析如下:
圖像的鏡像變化不改變圖像的形狀。圖像的鏡像變換分為三種:水平鏡像、垂直鏡像、對角鏡像
設圖像的大小為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
這里運行環(huán)境為:
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程序設計有所幫助。
新聞熱點
疑難解答