Trong thế giới ngày nay, dữ liệu đóng một vai trò quan trọng trong mọi ngành dọc. Hình ảnh có thể là một trong những nguồn trích xuất dữ liệu. Một hình ảnh có thể được định nghĩa là một ma trận pixel và mỗi pixel đại diện cho một màu có thể được coi là giá trị dữ liệu
Xử lý hình ảnh có ích để khám phá dữ liệu cơ bản từ bất kỳ hình ảnh nào. Nó giúp bạn trích xuất, thao tác và lọc dữ liệu từ một hình ảnh. Mục tiêu chính của xử lý ảnh là khám phá một số thông tin có giá trị từ ảnh.
Có nhiều ứng dụng xử lý hình ảnh khác nhau, chẳng hạn như làm sắc nét hình ảnh, phục hồi hình ảnh, nhận dạng mẫu, xử lý video, v.v. Hầu hết các ứng dụng xử lý hình ảnh đều thuộc phân tích dữ liệu và khoa học dữ liệu.
Và khi nói đến phân tích dữ liệu, ngôn ngữ duy nhất mà chúng tôi nghĩ đến là Python. Nó cũng là ngôn ngữ được ưa thích nhất để xử lý hình ảnh vì có bộ thư viện phong phú, giúp các nhà phát triển dễ dàng thực hiện các thao tác phức tạp bằng cách sử dụng các dòng mã đơn giản.
Chúng ta hãy xem một số thư viện Python chủ yếu được sử dụng để xử lý ảnh.
8 công cụ thao tác hình ảnh Python tốt nhất
Dưới đây là danh sách các thư viện Python tốt nhất giúp bạn thao tác với hình ảnh dễ dàng. Tất cả chúng đều dễ sử dụng và cho phép bạn trích xuất dữ liệu cơ bản từ hình ảnh.
1. OpenCV
OpenCV [Open Source Computer Vision Library] là một thư viện Python Data Visualation phổ biến. Nó là một thư viện mã nguồn mở có sẵn cho các ngôn ngữ lập trình khác nhau, bao gồm C ++, Java cũng như hợp ngữ.
Thư viện này do Intel phát triển bằng ngôn ngữ lập trình C++ và nó được thiết kế cho thị giác máy tính thời gian thực. Đó là lý tưởng để thực hiện các chương trình thị giác máy tính chuyên sâu.
Cài đặt
Vì OpenCV là thư viện của bên thứ ba, chúng tôi có thể cài đặt nó cho môi trường Python của mình bằng công cụ quản lý gói pip Python
pip install opencv-python
Ví dụ
# import opencv
import cv2
# Read the image
image = cv2.imread['tesla.png']
# grayscale the image
gray_image = cv2.cvtColor[image, cv2.COLOR_BGR2GRAY]
cv2.imshow['Original Image', image]
cv2.imshow['Grayscale Image', gray_image]
cv2.waitKey[0]
cv2.destroyAllWindows[]
đầu ra
2. Gối [PIL]
Gối là một thư viện xử lý ảnh Python phổ biến khác. Đây là thư viện xử lý ảnh cơ bản nhất mà mọi người mới bắt đầu đều có thể bắt đầu sử dụng. Nó còn được gọi là PIL, viết tắt của Python Imaging Library.
Thư viện PIL đi kèm với các phần mở rộng định dạng tệp khác nhau cung cấp các tính năng mạnh mẽ và phức tạp để thực hiện xử lý hình ảnh. Nếu chúng ta so sánh PIL với OpenCV, thì PIL là một thư viện nhẹ với ít tính năng hơn, giúp dễ dàng tìm hiểu và xử lý cho một nhà phát triển Python mới bước vào lĩnh vực xử lý hình ảnh.
Cài đặt
PIL cũng là thư viện mã nguồn mở của bên thứ ba và nó có thể được cài đặt bằng lệnh cài đặt pip
pip install pillow
Ví dụ
GrayScale một hình ảnh trong Python bằng Gối
from PIL import Image
with Image.open["tesla.png"] as im:
#show the original image
im.show["Original Image"]
#convert into grayscale
grayscaleImg = im.convert["L"]
#show the grayscale image
grayscaleImg.show[]
đầu ra
3. Hình ảnh Scikit
Scikit Images là một thư viện xử lý ảnh Python có khuynh hướng khoa học. Nó được thiết kế để xử lý hình ảnh bằng thư viện Numpy và Scipy. Nó bao gồm các thuật toán khoa học khác nhau, chẳng hạn như phân đoạn, thao tác không gian màu, phân tích, hình thái học, v.v. Thư viện này được viết bằng ngôn ngữ lập trình Python và C. Nó có sẵn cho tất cả các hệ điều hành phổ biến, chẳng hạn như Linux, macOS và Windows
Cài đặt
scikit-image là một thư viện mã nguồn mở và chúng ta có thể cài đặt nó bằng lệnh pip install
pip install scikit-image
Ví dụ
GrayScale một hình ảnh bằng thư viện hình ảnh scikit
from skimage import io
from skimage.color import rgb2gray
# way to load car image from file
car = io.imread['tesla.png'][:,:,:3]
#convert into grayscale
grayscale = rgb2gray[car]
#show the original
io.imshow[car]
io.show[]
#show the grayscale
io.imshow[grayscale]
io.show[]
đầu ra
4. NumPy
NumPy là thư viện máy tính khoa học Python cơ bản nhất. Nó nổi tiếng với việc giới thiệu các mảng hoặc ma trận đa chiều trong Python. Nó là một thư viện máy tính khoa học chuyên dụng. Ngoài ra, nó đi kèm với các tính năng toán học mở rộng như mảng, đại số tuyến tính, phép toán thống kê cơ bản, mô phỏng ngẫu nhiên, sắp xếp logic, tìm kiếm, thao tác hình, v.v.
Cài đặt
Một lần nữa để cài đặt NumPy, chúng ta có thể sử dụng lệnh cài đặt pip
pip install numpy
Ví dụ
Thang độ xám của hình ảnh bằng cách sử dụng numpy
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
#load the original image
img_rgb = mpimg.imread['tesla.png'][...,:3]
#show the original image
plt.imshow[img_rgb]
plt.show[]
#convert the image into grayscale
img_gray = np.dot[img_rgb,[0.299, 0.587, 0.144]]
#show the grayscale image
plt.imshow[img_gray, cmap=plt.get_cmap['gray']]
plt.show[]
đầu ra
5. khoa học viễn tưởng
Tương tự như Numpy, SciPy cũng là một thư viện tính toán khoa học. Nó có nhiều tính năng hơn Numpy vì nó được xây dựng như một phần mở rộng của thư viện NumPy
Scipy cung cấp các lệnh và lớp cấp cao và phức tạp để thao tác dữ liệu và trực quan hóa dữ liệu. Nó bao gồm một loạt các công cụ xử lý dữ liệu. Ngoài ra, nó hỗ trợ lập trình song song, truy cập dữ liệu từ web, chương trình con hướng dữ liệu và các tính năng toán học khác
Cài đặt
Để cài đặt thư viện SciPy, chúng ta có thể nhờ sự trợ giúp của công cụ CLI của trình quản lý gói Python, pip
________số 8
Ví dụ
Chuyển đổi một hình ảnh trong thang độ xám bằng cách sử dụng scipy
from scipy import misc,ndimage
from matplotlib import pyplot as plt
import numpy as np
img=misc.face[]
#show original image
plt.imshow[img]
plt.show[]
#grayscale using gaussian blur filter
grayscale=ndimage.gaussian_filter[img,sigma=2]
#show grayscale image
plt.imshow[grayscale]
plt.show[]
đầu ra
6. đại ca
Mahotas là một thư viện thị giác máy tính Python khác có thể thực hiện các hoạt động xử lý hình ảnh khác nhau. Nó được thiết kế bằng C++, và nó bao gồm nhiều thuật toán để tăng tốc độ xử lý hình ảnh. Ngoài ra, nó sử dụng hình ảnh trong ma trận bằng cách sử dụng mảng NumPy. Đầu nguồn, phép tính điểm lồi hit & miss tích chập, và các cạnh Sobel là những tính năng chính có sẵn trong thư viện này
Cài đặt
Mahotas là một thư viện mã nguồn mở và có thể được cài đặt bằng lệnh đầu cuối sau
# import opencv
import cv2
# Read the image
image = cv2.imread['tesla.png']
# grayscale the image
gray_image = cv2.cvtColor[image, cv2.COLOR_BGR2GRAY]
cv2.imshow['Original Image', image]
cv2.imshow['Grayscale Image', gray_image]
cv2.waitKey[0]
cv2.destroyAllWindows[]
0
Ví dụ
Chuyển đổi hình ảnh RGB sang thang độ xám bằng Mahotas
# import opencv
import cv2
# Read the image
image = cv2.imread['tesla.png']
# grayscale the image
gray_image = cv2.cvtColor[image, cv2.COLOR_BGR2GRAY]
cv2.imshow['Original Image', image]
cv2.imshow['Grayscale Image', gray_image]
cv2.waitKey[0]
cv2.destroyAllWindows[]
1
đầu ra
7. đơn giảnITK
SimpleITK là một bộ công cụ mạnh mẽ để đăng ký và phân đoạn hình ảnh. Nó được xây dựng như một phần mở rộng của bộ công cụ ITK để cung cấp một giao diện đơn giản hóa. Nó có sẵn trong các ngôn ngữ lập trình khác nhau như Python, R, C++, Java, C#, Ruby, TCL và Lua
Thư viện này hỗ trợ hình ảnh 2D, 3D và 4D. Tốc độ xử lý ảnh của thư viện này rất cao so với các thư viện và framework xử lý ảnh Python khác
Cài đặt
# import opencv
import cv2
# Read the image
image = cv2.imread['tesla.png']
# grayscale the image
gray_image = cv2.cvtColor[image, cv2.COLOR_BGR2GRAY]
cv2.imshow['Original Image', image]
cv2.imshow['Grayscale Image', gray_image]
cv2.waitKey[0]
cv2.destroyAllWindows[]
2
Ví dụ
Tải và hiển thị hình ảnh bằng SimpleITK
# import opencv
import cv2
# Read the image
image = cv2.imread['tesla.png']
# grayscale the image
gray_image = cv2.cvtColor[image, cv2.COLOR_BGR2GRAY]
cv2.imshow['Original Image', image]
cv2.imshow['Grayscale Image', gray_image]
cv2.waitKey[0]
cv2.destroyAllWindows[]
3
đầu ra
8. Matplotlib
Matplotlib cũng có thể được sử dụng làm thư viện xử lý ảnh, mặc dù nó là thư viện trực quan hóa dữ liệu. Nó thường được sử dụng để vẽ dữ liệu mảng NumPy, nhưng nó cũng có thể đọc dữ liệu hình ảnh được biểu thị bằng mảng NumPy. Chúng tôi đã sử dụng thư viện Matplotlib trong các thư viện trên để hiển thị và vẽ các hình ảnh
Cài đặt
Matplotlib có thể được cài đặt bằng lệnh đơn giản sau
# import opencv
import cv2
# Read the image
image = cv2.imread['tesla.png']
# grayscale the image
gray_image = cv2.cvtColor[image, cv2.COLOR_BGR2GRAY]
cv2.imshow['Original Image', image]
cv2.imshow['Grayscale Image', gray_image]
cv2.waitKey[0]
cv2.destroyAllWindows[]
4
Ví dụ
# import opencv
import cv2
# Read the image
image = cv2.imread['tesla.png']
# grayscale the image
gray_image = cv2.cvtColor[image, cv2.COLOR_BGR2GRAY]
cv2.imshow['Original Image', image]
cv2.imshow['Grayscale Image', gray_image]
cv2.waitKey[0]
cv2.destroyAllWindows[]
5
đầu ra
Phần kết luận
Đến đây kết thúc danh sách các công cụ thao tác hình ảnh Python tốt nhất của chúng tôi. Trong số tám thư viện hoặc công cụ này, thư viện xử lý hoặc thao tác hình ảnh Python được sử dụng nhiều nhất là Gối và OpenCV [SimplICV trong một số trường hợp cụ thể]
Nếu bạn đang nghĩ đến việc xây dựng một dự án liên quan đến xử lý ảnh, chẳng hạn như xác định đối tượng hoặc thao tác màu, hãy cân nhắc sử dụng thư viện OpenCV vì đây là một thư viện khổng lồ với nhiều tính năng nâng cao. Các thư viện khác cũng hỗ trợ một số tính năng thao tác hoặc xử lý ảnh nhưng không hiệu quả lắm