मैं कुछ कोड प्राप्त करने की कोशिश कर रहा हूं जो एक छवि पर एक परिप्रेक्ष्य परिवर्तन (इस मामले में एक 3 डी रोटेशन) करेगा।छवि पर 3 डी रोटेशन
import os.path
import numpy as np
import cv
def rotation(angle, axis):
return np.eye(3) + np.sin(angle) * skew(axis) \
+ (1 - np.cos(angle)) * skew(axis).dot(skew(axis))
def skew(vec):
return np.array([[0, -vec[2], vec[1]],
[vec[2], 0, -vec[0]],
[-vec[1], vec[0], 0]])
def rotate_image(imgname_in, angle, axis, imgname_out=None):
if imgname_out is None:
base, ext = os.path.splitext(imgname_in)
imgname_out = base + '-out' + ext
img_in = cv.LoadImage(imgname_in)
img_size = cv.GetSize(img_in)
img_out = cv.CreateImage(img_size, img_in.depth, img_in.nChannels)
transform = rotation(angle, axis)
cv.WarpPerspective(img_in, img_out, cv.fromarray(transform))
cv.SaveImage(imgname_out, img_out)
जब मैं z- अक्ष के बारे में बारी बारी से, सब कुछ उम्मीद के रूप में काम करता है, लेकिन चारों ओर एक्स या y अक्ष घूर्णन पूरी तरह से बंद है। इससे पहले कि मुझे उचित परिणाम दिखाई देने से पहले मुझे पीआई/200 के रूप में छोटे कोणों से घूमने की ज़रूरत है। कोई अंदाजा क्या गलत हो सकता है?