init - 初始化项目
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
from __future__ import print_function
|
||||
import cv2 as cv
|
||||
import numpy as np
|
||||
import argparse
|
||||
|
||||
## [Load the image]
|
||||
parser = argparse.ArgumentParser(description='Code for Affine Transformations tutorial.')
|
||||
parser.add_argument('--input', help='Path to input image.', default='lena.jpg')
|
||||
args = parser.parse_args()
|
||||
|
||||
src = cv.imread(cv.samples.findFile(args.input))
|
||||
if src is None:
|
||||
print('Could not open or find the image:', args.input)
|
||||
exit(0)
|
||||
## [Load the image]
|
||||
|
||||
## [Set your 3 points to calculate the Affine Transform]
|
||||
srcTri = np.array( [[0, 0], [src.shape[1] - 1, 0], [0, src.shape[0] - 1]] ).astype(np.float32)
|
||||
dstTri = np.array( [[0, src.shape[1]*0.33], [src.shape[1]*0.85, src.shape[0]*0.25], [src.shape[1]*0.15, src.shape[0]*0.7]] ).astype(np.float32)
|
||||
## [Set your 3 points to calculate the Affine Transform]
|
||||
|
||||
## [Get the Affine Transform]
|
||||
warp_mat = cv.getAffineTransform(srcTri, dstTri)
|
||||
## [Get the Affine Transform]
|
||||
|
||||
## [Apply the Affine Transform just found to the src image]
|
||||
warp_dst = cv.warpAffine(src, warp_mat, (src.shape[1], src.shape[0]))
|
||||
## [Apply the Affine Transform just found to the src image]
|
||||
|
||||
# Rotating the image after Warp
|
||||
|
||||
## [Compute a rotation matrix with respect to the center of the image]
|
||||
center = (warp_dst.shape[1]//2, warp_dst.shape[0]//2)
|
||||
angle = -50
|
||||
scale = 0.6
|
||||
## [Compute a rotation matrix with respect to the center of the image]
|
||||
|
||||
## [Get the rotation matrix with the specifications above]
|
||||
rot_mat = cv.getRotationMatrix2D( center, angle, scale )
|
||||
## [Get the rotation matrix with the specifications above]
|
||||
|
||||
## [Rotate the warped image]
|
||||
warp_rotate_dst = cv.warpAffine(warp_dst, rot_mat, (warp_dst.shape[1], warp_dst.shape[0]))
|
||||
## [Rotate the warped image]
|
||||
|
||||
## [Show what you got]
|
||||
cv.imshow('Source image', src)
|
||||
cv.imshow('Warp', warp_dst)
|
||||
cv.imshow('Warp + Rotate', warp_rotate_dst)
|
||||
## [Show what you got]
|
||||
|
||||
## [Wait until user exits the program]
|
||||
cv.waitKey()
|
||||
## [Wait until user exits the program]
|
||||
Reference in New Issue
Block a user