Hình ảnh có thể là một trong những nguồn trích xuất dữ liệu trong thế giới hiện đại, nơi dữ liệu cần thiết cho mọi ngành dọc. Một ma trận pixel có thể được sử dụng để biểu thị một hình ảnh và mỗi pixel biểu thị một màu có thể được sử dụng làm giá trị dữ liệu
Bạn có thể trích xuất, thao tác và lọc dữ liệu từ một hình ảnh bằng cách sử dụng xử lý hình ảnh để tiết lộ thông tin ẩn trong bất kỳ hình ảnh nào. Mục tiêu chính của xử lý ảnh là trích xuất thông tin hữu ích từ ảnh
Phần lớn các ứng dụng xử lý hình ảnh thuộc phân tích dữ liệu và khoa học dữ liệu, bao gồm làm sắc nét hình ảnh, phục hồi hình ảnh, nhận dạng mẫu và xử lý video.
Python cũng là ngôn ngữ phổ biến nhất để xử lý hình ảnh vì bộ thư viện phong phú của nó, 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 với các dòng mã đơn giản. Khi nói đến phân tích dữ liệu, Python là ngôn ngữ duy nhất xuất hiện trong đầu.
Hãy xem xét một số thư viện Python được sử dụng thường xuyên nhất để xử lý ảnh
8 công cụ Python hàng đầu để thao tác hình ảnh
Các thư viện Python tốt nhất để xử lý hình ảnh được liệt kê bên dưới; .
1. OpenCV
Thư viện Python Data Visualization phổ biến OpenCV [Open Source Computer Vision Library] là một thư viện mã nguồn mở có sẵn cho nhiều ngôn ngữ lập trình, bao gồm C++, Java và hợp ngữ.
Thư viện này do Intel tạo ra bằng C++, dành cho thị giác máy tính thời gian thực và là lựa chọn tốt nhất để chạy các ứng dụng thị giác máy tính đòi hỏi tính toán cao.
Cài đặt
Vì OpenCV là thư viện của bên thứ ba, công cụ quản lý gói Python pip có thể được sử dụng để cài đặt nó cho môi trường Python của chúng tôi
Thí dụ
đầu ra
2. Gối [PIL]
Một thư viện xử lý ảnh Python nổi tiếng khác là gối, đây là thư viện xử lý ảnh dễ học nhất cho người mới bắt đầu. PIL, viết tắt của Python Imaging Library, là tên gọi khác của nó
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. 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.
Cài đặt
Một thư viện nguồn mở bên ngoài khác là PIL, có thể được cài đặt bằng lệnh pip install
pip install pillow
Thí dụ
Sử dụng Gối, thang độ xám cho một hình ảnh trong Python
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
Một thư viện xử lý ảnh Python thay thế là Scikit Images, được tạo ra để hoạt động với các thư viện Numpy và Scipy. Bao gồm phân đoạn, thao tác không gian màu, phân tích, hình thái học và các thuật toán khoa học khác. Thư viện này được tạo bằng ngôn ngữ lập trình Python và C. Nó có thể truy cập được cho tất cả các hệ điều hành được sử dụng rộng rãi, bao gồm Windows, Linux và macOS
Cài đặt
Sử dụng lệnh pip install, chúng ta có thể cài đặt thư viện mã nguồn mở scikit-image
pip install scikit-image
Thí dụ
Sử dụng thư viện Scikit-Image, thang độ xám cho một hình ảnh
đầu ra
4. NumPy
Thư viện Python cơ bản nhất dành cho máy tính khoa học được gọi là NumPy và được biết đến với việc giới thiệu các mảng hoặc ma trận đa chiều trong Python. Cùng 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. , nó là một thư viện máy tính khoa học chuyên dụng
Cài đặt
Một lần nữa, chúng ta có thể sử dụng lệnh cài đặt pip để cài đặt NumPy
Thí dụ
Thang độ xám của hình ảnh bằng cách sử dụng numpy
đầu ra
5. khoa học viễn tưởng
Bởi vì nó được tạo ra như một bản mở rộng của thư viện Numpy, SciPy cũng là một thư viện tính toán khoa học, nhưng nó có nhiều tính năng hơn Numpy
Scipy bao gồm một loạt các công cụ xử lý dữ liệu và 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. Ngoài ra, nó hỗ trợ truy cập dữ liệu từ internet, chương trình con điều khiển dữ liệu, lập trình song song và các tính năng toán học khác
Cài đặt
Chúng ta có thể sử dụng công cụ CLI của trình quản lý gói Python, pip, để cài đặt thư viện SciPy
pip install scipy
Thí dụ
scipy có thể được sử dụng để chuyển đổi hình ảnh thành thang độ xám
đầu ra
6. đại ca
Mahotas là thư viện thị giác máy tính Python được thiết kế bằng C ++, có thể thực hiện nhiều hoạt động xử lý hình ảnh và chứa một số thuật toán để tăng tốc xử lý hình ảnh. Các tính năng chính của thư viện này là lưu vực, tính toán điểm lồi hit & miss tích chập, và các cạnh Sobel. Nó cũng sử dụng hình ảnh trong ma trận bằng cách sử dụng mảng NumPy
Cài đặt
Lệnh đầu cuối sau đây có thể được sử dụng để cài đặt thư viện mã nguồn mở Mahotas
Thí dụ
Sử dụng Mahotas để chuyển đổi hình ảnh RGB sang thang độ xám
# 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
Một bộ công cụ mạnh mẽ để đăng ký và phân đoạn hình ảnh, SimpleITK được tạo ra như một phần bổ sung cho bộ công cụ ITK để cung cấp giao diện thân thiện hơn với người dùng. Nó có thể được lập trình bằng nhiều ngôn ngữ, bao gồm Python, R, C++, Java, C#, Ruby, TCL và Lua
Khi so sánh với các thư viện và khung thao tác hình ảnh Python khác, tốc độ xử lý hình ảnh của thư viện này rất cao và nó hỗ trợ hình ảnh 2D, 3D và 4D
Cài đặt
Thí dụ
Sử dụng SimpleITK để tải và hiển thị hình ảnh
# 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
Mặc dù Matplotlib là thư viện trực quan hóa dữ liệu và thường được sử dụng để vẽ dữ liệu mảng có nhiều mảng, nhưng nó cũng có thể đọc dữ liệu hình ảnh được biểu thị bằng mảng NumPy và được sử dụng làm thư viện xử lý hình ảnh. Để hiển thị và vẽ đồ thị cho hình ảnh, chúng tôi đã sử dụng thư viện Matplotlib trong các thư viện nói trên
Cài đặt
Bạn có thể cài đặt Matplotlib bằng cách chạy 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
Thí 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
Sự kết luận
Tám công cụ hoặc thư viện trong 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 được liệt kê bên dưới, với Gối và OpenCV [và, trong một số trường hợp, SimplICV] là những công cụ phổ biến nhất
Các thư viện khác có hỗ trợ một số tính năng xử lý hoặc thao tác hình ảnh nhưng không hiệu quả bằng thư viện OpenCV, vì vậy nếu bạn đang nghĩ đến việc xây dựng một dự án liên quan đến xử lý hình ảnh, chẳng hạn như nhận dạng đối tượng hoặc thao tác màu, hãy cân nhắc sử dụng nó
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
________số 8
Thí 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
Thí 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
Thí dụ
GrayScale một hình ảnh bằng thư viện hình ảnh scikit
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[]
3
đầ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
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[]
4
Thí dụ
Thang độ xám của hình ảnh bằng cách sử dụng numpy
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[]
5
đầ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
pip install scipy
Thí dụ
Chuyển đổi một hình ảnh trong thang độ xám bằng cách sử dụng scipy
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[]
7
đầ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
Thí 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
Thí 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
Thí 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
Sự 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, các 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