Hướng dẫn rotate point python - xoay trăn điểm

Điều này thật dễ dàng nếu bạn đại diện cho các điểm của mình dưới dạng các số phức tạp và sử dụng hàm exp với một đối số tưởng tượng (tương đương với các hoạt động COS/SIN được hiển thị trong các câu trả lời khác, nhưng dễ viết và ghi nhớ hơn). Đây là một hàm xoay bất kỳ số lượng điểm nào về nguồn gốc đã chọn:

import numpy as np

def rotate(points, origin, angle):
    return (points - origin) * np.exp(complex(0, angle)) + origin

Để xoay một điểm duy nhất (x1, y1) về nguồn gốc (x0, y0) với một góc tính theo độ, bạn có thể gọi hàm với các đối số này:

points = complex(x1,y1)
origin = complex(x0,y0)
angle = np.deg2rad(degrees)

Để xoay nhiều điểm (x1, y1), (x2, y2), ..., sử dụng:

points = np.array([complex(x1,y1), complex(x2,y2), ...])

Một ví dụ với một điểm duy nhất (200.300) đã xoay 10 độ khoảng (100.100):

>>> new_point = rotate(complex(200,300), complex(100,100), np.deg2rad(10))
>>> new_point
(163.75113976783473+314.3263683691346j)
>>> (new_point.real, new_point.imag)
(163.75113976783473, 314.3263683691346)

Điều này thật dễ dàng nếu bạn đại diện cho các điểm của mình dưới dạng các số phức tạp và sử dụng hàm exp với một đối số tưởng tượng (tương đương với các hoạt động COS/SIN được hiển thị trong các câu trả lời khác, nhưng dễ viết và ghi nhớ hơn). Đây là một hàm xoay bất kỳ số lượng điểm nào về nguồn gốc đã chọn:

Nội phân chính

  • Giới thiệu
  • Phương pháp 1: Sử dụng Thư viện hình ảnh Python (PIL)
  • Ví dụ để xoay một hình ảnh trong Python với PIL
  • Phương pháp 2: Sử dụng CV mở để xoay hình ảnh trong Python
  • Ví dụ để xoay một hình ảnh với Open-CV
  • Phương pháp 3: Sử dụng Numpy xoay hình ảnh
  • Phương pháp 4: Xoay hình ảnh matplotlib sử dụng scipy trong Python
  • 1. Làm thế nào để bạn xoay một ma trận trong Python?
  • 2. Làm thế nào để bạn kiểm tra hướng của một hình ảnh trong Python?
  • Làm thế nào để bạn xoay một hình ảnh 45 độ trong Python?
  • Có một lệnh xoay trong Python?
  • Làm thế nào để bạn xoay một hình ảnh 180 độ trong Python?
  • Làm cách nào để xoay hình ảnh 90 độ trong Python?

import numpy as np

def rotate(points, origin, angle):
    return (points - origin) * np.exp(complex(0, angle)) + origin

Để xoay một hình ảnh bằng một góc với gối Python, bạn có thể sử dụng phương thức xoay () trên đối tượng hình ảnh. Phương thức xoay () xoay hình ảnh theo hướng ngược chiều kim đồng hồ.

points = complex(x1,y1)
origin = complex(x0,y0)
angle = np.deg2rad(degrees)

Điều này thật dễ dàng nếu bạn đại diện cho các điểm của mình dưới dạng các số phức tạp và sử dụng hàm exp với một đối số tưởng tượng (tương đương với các hoạt động COS/SIN được hiển thị trong các câu trả lời khác, nhưng dễ viết và ghi nhớ hơn). Đây là một hàm xoay bất kỳ số lượng điểm nào về nguồn gốc đã chọn:

points = np.array([complex(x1,y1), complex(x2,y2), ...])

Nội phân chính

>>> new_point = rotate(complex(200,300), complex(100,100), np.deg2rad(10))
>>> new_point
(163.75113976783473+314.3263683691346j)
>>> (new_point.real, new_point.imag)
(163.75113976783473, 314.3263683691346)
  • Giới thiệu
  • Phương pháp 1: Sử dụng Thư viện hình ảnh Python (PIL)
    • Ví dụ để xoay một hình ảnh trong Python với PIL
    • Phương pháp 2: Sử dụng CV mở để xoay hình ảnh trong Python
    • Ví dụ để xoay một hình ảnh trong Python với PIL
  • Phương pháp 2: Sử dụng CV mở để xoay hình ảnh trong Python
    • Ví dụ để xoay một hình ảnh trong Python với PIL
    • Ví dụ để xoay một hình ảnh với Open-CV
  • Phương pháp 3: Sử dụng Numpy xoay hình ảnh
  • Phương pháp 4: Xoay hình ảnh matplotlib sử dụng scipy trong Python
  • Sự kết luận
  • Câu hỏi thường gặp
    • 1. Làm thế nào để bạn xoay một ma trận trong Python?
    • Chúng ta có thể xoay một ma trận trong Python với sự trợ giúp của mã sau:

Giới thiệu

Phương pháp 1: Sử dụng Thư viện hình ảnh Python (PIL)

Phương pháp 1: Sử dụng Thư viện hình ảnh Python (PIL)

Thư viện hình ảnh Python (PIL) là một mô-đun chứa các chức năng được xây dựng trong Python để thao tác và làm việc với hình ảnh như một đầu vào cho các chức năng. Hàm sử dụng một phép biến đổi nghịch đảo. Nếu số độ mà chúng tôi đã chỉ định cho xoay hình ảnh không phải là bội số của 90 độ, thì một số giá trị pixel vượt ra ngoài ranh giới hình ảnh, tức là, các giá trị pixel nằm ngoài kích thước của hình ảnh. Các giá trị như vậy không được hiển thị trong hình ảnh đầu ra. & NBSP; The function uses an Inverse transformation. If the Number Of Degrees that we have Specified for Image Rotation is not an Integer Multiple of 90 Degrees, then some Pixel Values Beyond Image Boundaries, i.e., Pixel values lying outside the Dimension of the image. Such Values are not displayed in the output image. 

Để xoay hình ảnh bằng một góc với gối Python, bạn có thể sử dụng phương thức xoay () trên đối tượng hình ảnh. Phương thức xoay () được sử dụng để xoay hình ảnh theo hướng ngược chiều kim đồng hồ.

Cú pháp

image.rotate(angle, resample=0, expand=0, center=None, translate=None, fillcolor=None)

Thông số

  • Góc: Đó là góc tính theo độ ngược chiều kim đồng hồ. It is the angle in degrees counterclockwise.
  • Mẫu lại: Đó là một đầu vào tùy chọn. Nó có thể là một trong những pil.image. . Nếu bị bỏ qua, hoặc nếu hình ảnh có chế độ, 1 1 hoặc P, thì nó được đặt pil.image.nearest. Xem bộ lọc. It is an optional input. It can be one of PIL.Image.NEAREST (use the nearest neighbor), PIL.Image.BILINEAR (linear interpolation in a 2×2 environment), or PIL.Image.BICUBIC (cubic spline interpolation in a 4×4 environment). If omitted, or if the image has mode “1” or “P,” it is set PIL.Image.NEAREST. See Filters.
  • Mở rộng: Đó là một đầu vào tùy chọn. Nếu được đặt thành True, hình ảnh mở rộng và trở nên đủ lớn để giữ toàn bộ hình ảnh xoay. Nếu được đặt thành sai, hình ảnh đầu ra có cùng kích thước như hình ảnh đầu vào. It is an optional input. If set to True, the images expand and become large enough to hold the entire rotated image. If set to False, the output image is of the same size as of input image.
  • Trung tâm: Đó là một đầu vào tùy chọn. Nó đặt trung tâm của xoay hình ảnh. Theo mặc định, nó là trung tâm của hình ảnh. It is an optional input. It set the center of image rotation. By default, it is the center of the image.
  • Dịch: Nó là một đầu vào tùy chọn. Nó là một bản dịch hậu kỳ. It is an optional input. It is a post-rotate translation.
  • FillColor: Đó là một đầu vào tùy chọn. Nó là một màu cho một khu vực bên ngoài hình ảnh xoay. It is an optional input. It is a color for an area outside the rotated image.

Ví dụ để xoay một hình ảnh trong Python với PIL

Trong ví dụ này, chúng tôi sẽ phải nhập mô -đun hình ảnh từ thư viện PIL của Python. Sau đó, chúng tôi sẽ đọc hình ảnh đầu vào mà bạn muốn vận hành vòng quay của một hình ảnh. Sau đó, chúng tôi sẽ in hình ảnh gốc hoặc đầu vào. Sau đó, chúng tôi sẽ áp dụng hàm xoay () trên hình ảnh đầu vào và xem đầu ra. Chúng ta hãy nhìn vào ví dụ để hiểu chi tiết khái niệm.

#import Image from PIL
from PIL import Image

#read the image
input_image = Image.open("E:\Python-Pool-Home.jpg")
#show image 
input_image.show()

#rotate image
angle = 180
output = input_image.rotate(angle)
output.show()

angle1 = 90
output1 = input_image.rotate(angle1)
output1.show()

Output:

Hình ảnh đầu vào gốc

Hình ảnh 180 độ xoay

Hình ảnh xoay 90 độ

Explanation:

  • Đầu tiên, chúng tôi sẽ nhập mô -đun hình ảnh từ thư viện PIL của Python.
  • Sau đó, chúng tôi sẽ lấy hình ảnh đầu vào để vận hành xoay trên hình ảnh đầu vào.
  • Sau đó, chúng tôi sẽ in hình ảnh đầu vào bằng hàm show ().
  • Sau đó, chúng tôi sẽ đặt một góc mà chúng tôi muốn xoay một hình ảnh.
  • Sau đó, chúng ta sẽ áp dụng hàm xoay () trong đó chúng ta sẽ vượt qua góc quay của hình ảnh.angle of rotation of the image.
  • Chúng tôi đã xoay hình ảnh với hai góc đã cho, tức là, 180 độ và 90 độ.
  • Cuối cùng, chúng tôi sẽ hiển thị cả hình ảnh xoay theo góc độ.
  • Do đó, bạn có thể thấy cả ba hình ảnh.

Phương pháp 2: Sử dụng CV mở để xoay hình ảnh trong Python

Python Open-CV là một mô-đun xử lý các ứng dụng thời gian thực liên quan đến tầm nhìn máy tính. Nó có một số lượng tốt các chức năng tích hợp để xử lý hình ảnh làm đầu vào từ người dùng. Nó hoạt động với thư viện xử lý hình ảnh iMutils, liên quan đến hình ảnh. Với sự trợ giúp của & nbsp; iMutils.Rotate () & nbsp; hàm, chúng ta có thể xoay một hình ảnh theo một góc trong python. Ngay cả Open-CV cũng xoay hình ảnh trong & nbsp; ngược chiều kim đồng hồ & nbsp; hướng đến số độ được chỉ định.imutils.rotate() function, we can rotate an image by an angle in Python. Even Open-CV Rotates the image in Counter Clockwise direction to the number of degrees specified.

Cú pháp

points = complex(x1,y1)
origin = complex(x0,y0)
angle = np.deg2rad(degrees)
0

Thông số

Góc: Đó là góc tính theo độ ngược chiều kim đồng hồ.cv2.imshow(). Then, we will apply the imutils.rotate() function to rotate an image for a particular angle. Then, we will print the images after rotation. Let us look at the example for understanding the concept in detail.

points = complex(x1,y1)
origin = complex(x0,y0)
angle = np.deg2rad(degrees)
1

Output:

Explanation:

  • Mẫu lại: Đó là một đầu vào tùy chọn. Nó có thể là một trong những pil.image. . Nếu bị bỏ qua, hoặc nếu hình ảnh có chế độ, 1 1 hoặc P, thì nó được đặt pil.image.nearest. Xem bộ lọc.
  • Mở rộng: Đó là một đầu vào tùy chọn. Nếu được đặt thành True, hình ảnh mở rộng và trở nên đủ lớn để giữ toàn bộ hình ảnh xoay. Nếu được đặt thành sai, hình ảnh đầu ra có cùng kích thước như hình ảnh đầu vào.
  • Sau đó, chúng ta sẽ áp dụng hàm xoay () trong đó chúng ta sẽ vượt qua góc quay của hình ảnh.
  • Chúng tôi đã xoay hình ảnh với hai góc đã cho, tức là, 180 độ và 90 độ.
  • Cuối cùng, chúng tôi sẽ hiển thị cả hình ảnh xoay theo góc độ.
  • Do đó, bạn có thể thấy cả ba hình ảnh.

Phương pháp 2: Sử dụng CV mở để xoay hình ảnh trong Python

Python Open-CV là một mô-đun xử lý các ứng dụng thời gian thực liên quan đến tầm nhìn máy tính. Nó có một số lượng tốt các chức năng tích hợp để xử lý hình ảnh làm đầu vào từ người dùng. Nó hoạt động với thư viện xử lý hình ảnh iMutils, liên quan đến hình ảnh. Với sự trợ giúp của & nbsp; iMutils.Rotate () & nbsp; hàm, chúng ta có thể xoay một hình ảnh theo một góc trong python. Ngay cả Open-CV cũng xoay hình ảnh trong & nbsp; ngược chiều kim đồng hồ & nbsp; hướng đến số độ được chỉ định.

points = complex(x1,y1)
origin = complex(x0,y0)
angle = np.deg2rad(degrees)
2

Output:

Explanation:

  • Đầu tiên, chúng tôi sẽ nhập một mô -đun Numpy với tên bí danh là NP.
  • Sau đó, chúng tôi sẽ nhập hình ảnh từ mô -đun PIL.
  • Sau đó, chúng tôi sẽ lấy một hình ảnh đầu vào từ hàm np.array ().
  • Sau đó, chúng tôi sẽ áp dụng hàm NP.ROT90 ().
  • Bên trong hàm, nếu chúng ta đã vượt qua đối số thứ hai, điều đó có nghĩa là số lần chúng ta cần xoay một hình ảnh. Giả sử, nếu 1 được thông qua, thì nó sẽ chỉ xoay 90 độ và nếu 2 được thông qua, nó sẽ xoay 180 độ.
  • Do đó, bạn có thể thấy hình ảnh xoay ở vị trí đã cho.

Phương pháp 4: Xoay hình ảnh matplotlib sử dụng scipy trong Python

Trong ví dụ này, chúng tôi sẽ sử dụng thư viện matplotlib và scipy để xoay hình ảnh. Sau đó, chúng tôi sẽ áp dụng hàm Misc.Face () từ Thư viện SCIPY. Sau đó, chúng tôi sẽ xoay một hình ảnh và xem đầu ra. Chúng ta hãy nhìn vào ví dụ để hiểu chi tiết khái niệm.

points = complex(x1,y1)
origin = complex(x0,y0)
angle = np.deg2rad(degrees)
3

Output:

Explanation:

  • Đầu tiên, chúng tôi sẽ nhập NDIMAGE và MISC từ Thư viện SCIPY.
  • Sau đó, chúng tôi sẽ nhập thư viện Pyplot từ mô -đun Matplotlib.
  • Sau đó, chúng tôi sẽ áp dụng hàm misc.face ().
  • Sau đó, chúng tôi sẽ áp dụng hàm ndimage.rotate () để xoay hình ảnh.
  • Cuối cùng, chúng tôi sẽ áp dụng imshow () và show () để hiển thị hình ảnh.

Sự kết luận

Trong hướng dẫn này, chúng tôi đã tìm hiểu về cách xoay hình ảnh trong Python với sự trợ giúp của hai phương pháp, tức là, sử dụng CV mở và sử dụng Thư viện được cài đặt Python (PIL). Cả hai phương pháp đều được giải thích chi tiết với cú pháp của chúng và mã mẫu làm ví dụ. Tất cả các ví dụ sẽ giúp bạn hiểu phương pháp sâu sắc hơn.

Tuy nhiên, nếu bạn có bất kỳ nghi ngờ hoặc câu hỏi nào, hãy cho tôi biết trong phần bình luận bên dưới. Tôi sẽ cố gắng giúp bạn càng sớm càng tốt.

Câu hỏi thường gặp

1. Làm thế nào để bạn xoay một ma trận trong Python?

Chúng ta có thể xoay một ma trận trong Python với sự trợ giúp của mã sau:

points = complex(x1,y1)
origin = complex(x0,y0)
angle = np.deg2rad(degrees)
4

Output:

2. Làm thế nào để bạn kiểm tra hướng của một hình ảnh trong Python?

Khi không có hiệu chỉnh được áp dụng, & nbsp; định hướng & nbsp; của một bức ảnh được xác định bởi & nbsp; xoay & nbsp; của máy ảnh tại thời điểm & nbsp; hình ảnh & nbsp; đã được chụp. Mặc dù có nhiều góc có thể, xoay theo bội số 90 ° là phổ biến nhất. Chúng cũng đơn giản để sửa chữa sau khi được phát hiện. Chúng ta có thể kiểm tra định hướng của một hình ảnh trong Python bằng các tính năng dựa trên LBP và hồi quy logistic.

Làm thế nào để bạn xoay một hình ảnh 45 độ trong Python?

Example:..

# Nhập thư viện xử lý hình ảnh Python ..

Từ hình ảnh nhập khẩu PIL ..

# Tạo một đối tượng hình ảnh từ một hình ảnh ..

colorimage = Image.open ("./ effil.jpg").

# Xoay nó 45 độ ..

xoay = colorimage.rotate (45).

# Xoay nó bằng 90 độ ..

hoán vị = colorimage.transpose (Image.rotate_90).

Có một lệnh xoay trong Python?

Xoay là không thể truy vấn, không thể truy vấn và không thể chỉnh sửa. Lệnh xoay được sử dụng để thay đổi vòng quay của các đối tượng hình học. ....

Làm thế nào để bạn xoay một hình ảnh 180 độ trong Python?

Chúng ta có thể sử dụng CV2.ROTATE_180 để xoay hình ảnh 180 độ hoặc lật nó.cv2. ROTATE_180 to rotate the image 180 degrees or flip it.

Làm cách nào để xoay hình ảnh 90 độ trong Python?

Để xoay một hình ảnh bằng một góc với gối Python, bạn có thể sử dụng phương thức xoay () trên đối tượng hình ảnh. Phương thức xoay () xoay hình ảnh theo hướng ngược chiều kim đồng hồ.use rotate() method on the Image object. rotate() method rotates the image in counter clockwise direction.