Python xoay ảnh không cần thư viện

Trước tiên chúng ta hãy nhập các thư viện cần thiết và đọc hình ảnh. Hãy để chúng tôi cũng lưu trữ kích thước của hình ảnh bằng cách sử dụng. hàm hình dạng []. Hình ảnh mà chúng tôi đang sử dụng ở đây là hình ảnh được hiển thị bên dưới

Hình ảnh đầu vào ban đầu
Hình ảnh được xoay 180 độ
Hình ảnh được xoay 90 độ

Giải trình

  • Đầu tiên chúng ta sẽ import module Image từ thư viện PIL của python
  • Sau đó, chúng ta sẽ lấy ảnh đầu vào để thao tác xoay trên ảnh đầu vào
  • Sau đó, chúng ta sẽ in ả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 hình ảnh
  • Sau đó, chúng ta sẽ áp dụng hàm rotate[] trong đó chúng ta sẽ chuyển góc xoay của hình ảnh.
  • Ta đã quay hình với hai góc cho trước, i. e. , 180 độ và 90 độ
  • Cuối cùng, chúng tôi sẽ hiển thị cả hai 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 open-CV để xoay hình ảnh trong python

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

cú pháp

imutils.rotate[image, angle=angle]

Ví dụ xoay ảnh với open-CV

Trong ví dụ này, chúng tôi sẽ sử dụng mô-đun open-CV để xoay hình ảnh. Mô-đun Open-CV được sử dụng để xử lý các ứng dụng thời gian thực. Đối với điều này, chúng tôi cần cài đặt openCV trên máy tính xách tay hoặc máy tính để bàn của bạn. Sau đó, chúng ta phải nhập imutils. Sau đó, chúng tôi sẽ đọc một hình ảnh đầu vào bằng cv2. imshow[] . Sau đó, chúng tôi sẽ áp dụng các imutils. rotate[] để xoay hình ảnh cho một góc cụ thể. Sau đó, chúng tôi sẽ in hình ảnh sau khi xoay. Chúng ta hãy xem ví dụ để hiểu khái niệm này một cách chi tiết.

#import cv2 and imutils module
import cv2  
import imutils
  
# read an image as input using OpenCV
input_image = cv2.imread[r"E:\Python-Pool-Home.jpg"]
  
output_image = imutils.rotate[input_image, angle=180]

# display the image of 180 degree angle
cv2.imshow["Rotated", output_image]


output1_image = imutils.rotate[input_image, angle=90]
   
# display the image of 90 degree and=gle
cv2.imshow["Rotated", output1_image]
  
# This is used for To Keep On Displaying
cv2.waitKey[0]

đầu ra

Giải trình

  • Đầu tiên chúng ta sẽ import thư viện cv2 và imutils
  • Sau đó, chúng tôi sẽ đọc hình ảnh với sự trợ giúp của mô-đun cv2 làm đầu vào
  • Sau đó, chúng tôi sẽ áp dụng hàm rotate[] trong đó chúng tôi sẽ chuyển góc quay của hình ảnh
  • Ta đã quay hình với hai góc cho trước, i. e. , 180 độ và 90 độ
  • Cuối cùng, chúng tôi sẽ hiển thị cả hai hình ảnh xoay theo góc
  • Do đó, bạn có thể thấy tất cả hai hình ảnh

Phương pháp 3. Sử dụng numpy xoay một hình ảnh

Trong ví dụ này, chúng tôi đã sử dụng mô-đun numpy để xoay hình ảnh. Đối với điều này, chúng ta phải nhập thư viện numpy và Hình ảnh từ mô-đun PIL. Sau đó, chúng tôi sẽ lấy một hình ảnh đầu vào từ np. hàm mảng []. Cuối cùng, chúng tôi sẽ áp dụng np. rot90[] để xoay hình ảnh. Bên trong hàm, nếu chúng ta đã chuyển đố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 vượt qua 1, nó sẽ chỉ xoay 90 độ và nếu vượt qua 2, nó sẽ xoay 180 độ. Chúng ta hãy xem ví dụ để hiểu khái niệm này một cách chi tiết

import numpy as np
from PIL import Image

input_image = np.array[Image.open['E:\Python-Pool-Home.jpg']]

Image.fromarray[np.rot90[input_image]].save['E:\sid.jpg']

Image.fromarray[np.rot90[input_image, 2]].save['E:\sid1.jpg']

đầu ra

Giải trình

  • Đầu tiên, chúng tôi sẽ nhập một mô-đun numpy có 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ừ np. hàm mảng []
  • Sau đó, chúng tôi sẽ áp dụng np. hàm rot90[]
  • Bên trong hàm, nếu chúng ta đã chuyển đố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 vượt qua 1 thì nó chỉ quay 90 độ và nếu vượt qua 2 thì nó sẽ quay 180 độ
  • Do đó, bạn có thể thấy hình ảnh được xoay ở vị trí nhất định

Phương pháp 4. Xoay hình ảnh matplotlib bằng scipy trong python

Trong ví dụ này, chúng tôi sẽ sử dụng matplotlib và thư viện scipy để xoay hình ảnh. Sau đó, chúng tôi sẽ áp dụng linh tinh. 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 xem ví dụ để hiểu khái niệm này một cách chi tiết

from scipy import ndimage, misc
from matplotlib import pyplot as plt
  
panda = misc.face[]

panda_rotate = ndimage.rotate[panda, 90,
                              mode = 'mirror']
plt.imshow[panda_rotate]
plt.show[]

đầu ra

Giải trình

  • Đầ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 misc. khuôn mặt[] chức năng
  • Sau đó, chúng tôi sẽ áp dụng ndimage. rotate[] chức năng để xoay một hình ảnh
  • Cuối cùng, chúng ta sẽ áp dụng imshow[] và show[] để hiển thị hình ảnh

Phần kết luận

Trong hướng dẫn này, chúng ta đã học về cách xoay hình ảnh trong python với sự trợ giúp của hai phương pháp, tôi. e. , Sử dụng open-CV và sử dụng thư viện 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à các mã Mẫu làm ví dụ. Tất cả các ví dụ sẽ giúp bạn hiểu sâu hơn về phương pháp

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 trong thời gian sớm nhấ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 đoạn mã sau

class rotatedMatrix[object]:
   def rotate[self, mat]:
      temp_matrix = []
      column = len[mat]-1
      for column in range[len[mat]]:
         temp = []
         for row in range[len[mat]-1,-1,-1]:
            temp.append[mat[row][column]]
         temp_matrix.append[temp]
      for i in range[len[mat]]:
         for j in range[len[mat]]:
            mat[i][j] = temp_matrix[i][j]
      return mat

ob1 = rotatedMatrix[]
print[ob1.rotate[[[1,2,3],[4,5,6],[7,8,9]]]]

đầu ra

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

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

Chủ Đề