OpenCVを使ってPythonで特定の点(しばしば非常に小さな角度)で画像を回転させる例が見つからない。OpenCV Python特定の点を中心にX度で画像を回転する
これは私がこれまで持っているものですが、それは非常に奇妙な結果の画像を生成し、それが多少回転している:あなたはCV2のバージョンを使用していると仮定すると、
def rotateImage(image, angle):
if image != None:
dst_image = cv.CloneImage(image)
rotate_around = (0,0)
transl = cv.CreateMat(2, 3, cv.CV_32FC1)
matrix = cv.GetRotationMatrix2D(rotate_around, angle, 1.0, transl)
cv.GetQuadrangleSubPix(image, dst_image, transl)
cv.GetRectSubPix(dst_image, image, rotate_around)
return dst_image
おかげで、しかし私は "CV" モジュールを使用していますし、あなたがそう、 "CV2" を使用していますその "image.shape"についての不平は特に存在しません。私は今まで "cv"モジュールを使っていただけなので、まだ "cv2"ですべての変更を取得していません。私は自分のイメージが(140,140)であることを知っているので、image.shapeの代わりにハードコーディングを試みましたが、それはまったく好きではありませんでした。 – Mike
私はいくつかの進歩を遂げたかもしれないが、まだ問題に陥っていると思う。ここでは最新のコードです: 結果= cv2.warpAffine(画像、rot_mat、cv.GetSize(画像)、フラグ= cv2.INTER_LINEAR) トレースバック(最後の最新の呼び出し): 結果= cv2.warpAffine(画像、rot_mat、cv.GetSize(画像)、フラグ= cv2.INTER_LINEAR) 例外TypeError:がnumpyのアレイ –
Mike
Iは cv2.getRotationMatrix2D(中心= image_center、角=角度、スケール= 1) を実行して問題がありませんTypeError:関数は正確に2つの引数を取ります(3与えられます) – Hani