Computer >> Máy Tính >  >> Lập trình >> Python

Xử lý ảnh bằng Python?

Python cung cấp rất nhiều thư viện để xử lý hình ảnh, bao gồm -

  • OpenCV - Thư viện xử lý hình ảnh chủ yếu tập trung vào thị giác máy tính thời gian thực với ứng dụng trong nhiều lĩnh vực như bộ công cụ tính năng 2D và 3D, nhận dạng khuôn mặt và cử chỉ, tương tác giữa người và máy tính, rô bốt di động, nhận dạng đối tượng và các lĩnh vực khác.

  • Thư viện Numpy và Scipy - Đối với thao tác và xử lý hình ảnh.

  • Sckikit - Cung cấp nhiều nhịp điệu để xử lý hình ảnh.

  • Thư viện hình ảnh Python (PIL) - Thực hiện các thao tác cơ bản trên hình ảnh như tạo hình thu nhỏ, thay đổi kích thước, xoay, chuyển đổi giữa các định dạng tệp khác nhau, v.v.

Trong phần này, chúng ta sẽ xem một số kiến ​​thức cơ bản về xử lý hình ảnh trong python.

Cài đặt thư viện bắt buộc

Bước đầu tiên của chúng tôi sẽ là cài đặt thư viện cần thiết, như openCV, gối hoặc thư viện khác mà chúng tôi muốn sử dụng để xử lý hình ảnh. Chúng tôi có thể sử dụng pip để cài đặt thư viện cần thiết, như -

$pip install pillow

Vậy là xong:bây giờ chúng ta có thể chơi với hình ảnh của mình.

Hình ảnh:Mở () và hiển thị ()

Đầu tiên, mở tệp / hình ảnh và hiển thị. Bạn có thể xoay hình ảnh trong khi hiển thị như bên dưới -

#Import required library
from PIL import Image

#Open Image
im = Image.open("TajMahal.jpg")

#Image rotate & show
im.rotate(45).show()

Đầu ra

Xử lý ảnh bằng Python?

Như biến trên im, là một đối tượng gối. Chúng tôi có thể truy xuất một số thông tin về hình ảnh đã mở -

>>> im
<PIL.JpegImagePlugin.JpegImageFile image mode = RGB size = 1000x667 at 0x65AB990<
>>> im.size
(1000, 667)
>>> im.format
'JPEG'
>>>

Chuyển đổi và Lưu () Hình ảnh

Chúng ta có thể thay đổi định dạng của hình ảnh từ dạng này sang dạng khác, như bên dưới -

>>> im.save('TajMahal.png')

Bây giờ nếu chúng ta nhìn thấy thư mục, chúng ta có cùng một hình ảnh ở hai định dạng khác nhau.

Thay đổi kích thước-thumbnails ()

Chúng ta có thể thay đổi kích thước của hình ảnh bằng cách sử dụng phương thức thumbnail () của gối -

>>> im.thumbnail ((300, 300))
>>> im.show()

Hình ảnh sẽ thay đổi như sau:

Xử lý ảnh bằng Python?

Chuyển đổi sang hình ảnh thang độ xám - convert ()

Chúng tôi có thể tạo hình ảnh thang độ xám từ hình ảnh màu ban đầu của chúng tôi.

>>> TajMahal_gray = Image.open('TajMahal.jpg').convert('L')
>>> TajMahal_gray.show()

Trong đó "L" là viết tắt của 'luminous'.

Xử lý ảnh bằng Python?


Ví dụ trên là từ thư viện PIL của python. Chúng ta có thể sử dụng thư viện khác như open-cv, matplotlib &numpy để xử lý hình ảnh. Dưới đây là một số chương trình ví dụ để chứng minh việc sử dụng thư viện mạnh mẽ để xử lý hình ảnh.

Hiển thị hình ảnh ở thang độ xám

#Import required library
import cv2
import numpy as np
from matplotlib import pyplot as plt

im = cv2.imread('TajMahal.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',im)
cv2.waitKey(0)
cv2.destroyAllWindows()

Đầu ra

Xử lý ảnh bằng Python?

Một cách khác để viết chương trình trên với dấu tích / dòng để đánh dấu hình ảnh.

import cv2
import numpy as np
from matplotlib import pyplot as plt

im = cv2.imread('TajMahal.jpg',cv2.IMREAD_GRAYSCALE)

plt.imshow(im, cmap = 'gray', interpolation = 'bicubic')
# to hide tick values on X and Y axis
plt.xticks([]), plt.yticks([])
plt.plot([200,300,400],[100,200,300],'c', linewidth = 5)
plt.show()

Đầu ra

Xử lý ảnh bằng Python?