Hướng dẫn what is imutils in python - imutils trong python là gì

Một loạt các chức năng tiện lợi để tạo các chức năng xử lý hình ảnh cơ bản như dịch thuật, xoay, thay đổi kích thước, bộ xương, hiển thị hình ảnh matplotlib, sắp xếp các đường viền, phát hiện các cạnh và dễ dàng hơn nhiều với OpenCV và cả Python 2.7 và Python 3.

  • Mô tả dự án
  • Chi tiết dự án
  • Lịch sử phát hành
  • Tải tập tin

Mô tả dự án

Tác giả của gói này đã không cung cấp một mô tả dự án

Chi tiết dự án


Tải tập tin

Tải xuống tệp cho nền tảng của bạn. Nếu bạn không chắc chắn nên chọn cái nào, hãy tìm hiểu thêm về việc cài đặt các gói.

Phân phối nguồn

Đóng

Băm cho imutils-0.5.4.tar.gz

Băm cho imutils-0.5.4.tar.gz
Thuật toánBăm tiêu hóa
SHA256
import imutils
imutils.find_function("contour")
4
MD5
import imutils
imutils.find_function("contour")
5
BLAKE2-256
import imutils
imutils.find_function("contour")
6

Imutils

Một loạt các chức năng tiện lợi để tạo các chức năng xử lý hình ảnh cơ bản như dịch thuật, xoay, thay đổi kích thước, bộ xương và hiển thị hình ảnh matplotlib dễ dàng hơn với openCV và cả Python 2.7 và python 3.both Python 2.7 and Python 3.

Để biết thêm thông tin, cùng với đánh giá mã chi tiết, hãy xem các bài đăng sau trên blog PyimageSarch.com:

  • http://www.pyimagesearch.com/2015/02/02/just-open-sourced-personal-imutils-package-series-opencv-convenience-functions/
  • http://www.pyimagesearch.com/2015/03/02/convert-url-to-image-with-python-and-opencv/
  • http://www.pyimagesearch.com/2015/04/06/zero-parameter-automatic-canny-edge-detection-with-python-and-opencv/
  • http://www.pyimagesearch.com/2014/09/01/build-kick-ass-mobile-document-scanner-just-5-minutes/
  • http://www.pyimagesearch.com/2015/08/10/checking-your-opencv-version-using-python/

Cài đặt

Với điều kiện bạn đã có Numpy, Scipy, Matplotlib và OpenCV đã được cài đặt, gói

import imutils
imutils.find_function("contour")
7 hoàn toàn ____ 18 có thể cài đặt được:

$ pip install imutils

Tìm chức năng chức năng OpenCV theo tên

OpenCV có thể là một thư viện lớn, khó điều hướng, đặc biệt nếu bạn mới bắt đầu học tầm nhìn máy tính và xử lý hình ảnh. Phương thức

import imutils
imutils.find_function("contour")
9 cho phép bạn nhanh chóng tìm kiếm tên chức năng trên các mô-đun (và các mô hình phụ tùy ý) để tìm chức năng bạn đang tìm kiếm.

Example:

Hãy tìm tất cả các tên chức năng chứa văn bản

1. contourArea
2. drawContours
3. findContours
4. isContourConvex
0:

import imutils
imutils.find_function("contour")

Output:

1. contourArea
2. drawContours
3. findContours
4. isContourConvex

Do đó, hàm

1. contourArea
2. drawContours
3. findContours
4. isContourConvex
1 có thể được truy cập thông qua:
1. contourArea
2. drawContours
3. findContours
4. isContourConvex
2

Dịch

Dịch là sự dịch chuyển của một hình ảnh theo hướng x hoặc y. Để dịch một hình ảnh trong openCV, bạn sẽ cần cung cấp (x, y) -shift, được ký hiệu là (tx, ty) để xây dựng ma trận dịch m:

Hướng dẫn what is imutils in python - imutils trong python là gì

Và từ đó, bạn sẽ cần áp dụng chức năng

1. contourArea
2. drawContours
3. findContours
4. isContourConvex
3.

Thay vì xây dựng thủ công ma trận dịch m và gọi

1. contourArea
2. drawContours
3. findContours
4. isContourConvex
3, bạn chỉ cần thực hiện cuộc gọi đến chức năng
1. contourArea
2. drawContours
3. findContours
4. isContourConvex
5 của
import imutils
imutils.find_function("contour")
7.

Example:

# translate the image x=25 pixels to the right and y=75 pixels up
translated = imutils.translate(workspace, 25, -75)

Output:

Hướng dẫn what is imutils in python - imutils trong python là gì

Vòng xoay

Xoay một hình ảnh trong OpenCV được thực hiện bằng cách thực hiện cuộc gọi đến

1. contourArea
2. drawContours
3. findContours
4. isContourConvex
7 và
1. contourArea
2. drawContours
3. findContours
4. isContourConvex
3. Cần phải cẩn thận hơn nữa để cung cấp (x, y) -Coordinate của điểm mà hình ảnh sẽ được xoay. Những cuộc gọi tính toán này có thể nhanh chóng thêm và làm cho mã của bạn cồng kềnh và không dễ đọc. Hàm
1. contourArea
2. drawContours
3. findContours
4. isContourConvex
9 trong
import imutils
imutils.find_function("contour")
7 giúp giải quyết vấn đề này.

Example:

# loop over the angles to rotate the image
for angle in xrange(0, 360, 90):
	# rotate the image and display it
	rotated = imutils.rotate(bridge, angle=angle)
	cv2.imshow("Angle=%d" % (angle), rotated)

Output:

Hướng dẫn what is imutils in python - imutils trong python là gì

Thay đổi kích thước

Thay đổi kích thước một hình ảnh trong openCV được thực hiện bằng cách gọi hàm

# translate the image x=25 pixels to the right and y=75 pixels up
translated = imutils.translate(workspace, 25, -75)
1. Tuy nhiên, cần được chăm sóc đặc biệt để đảm bảo rằng tỷ lệ khung hình được duy trì. Hàm
# translate the image x=25 pixels to the right and y=75 pixels up
translated = imutils.translate(workspace, 25, -75)
2 này của
import imutils
imutils.find_function("contour")
7 duy trì tỷ lệ khung hình và cung cấp các đối số từ khóa
# translate the image x=25 pixels to the right and y=75 pixels up
translated = imutils.translate(workspace, 25, -75)
4 và
# translate the image x=25 pixels to the right and y=75 pixels up
translated = imutils.translate(workspace, 25, -75)
5 để hình ảnh có thể được thay đổi kích thước theo chiều rộng/chiều cao trong khi (1) duy trì tỷ lệ khung hình và (2) được tính toán rõ ràng bởi các nhà phát triển.

Một đối số từ khóa tùy chọn khác,

# translate the image x=25 pixels to the right and y=75 pixels up
translated = imutils.translate(workspace, 25, -75)
6, cũng có thể được sử dụng để chỉ định phương thức nội suy.

Example:

# loop over varying widths to resize the image to
for width in (400, 300, 200, 100):
	# resize the image and display it
	resized = imutils.resize(workspace, width=width)
	cv2.imshow("Width=%dpx" % (width), resized)

Output:

Hướng dẫn what is imutils in python - imutils trong python là gì

Bộ xương

Bộ xương là quá trình xây dựng "bộ xương tôpô" của một đối tượng trong một hình ảnh, trong đó vật thể được cho là màu trắng trên nền đen. OpenCV không cung cấp một chức năng để xây dựng bộ xương một cách rõ ràng, nhưng không cung cấp các chức năng hình thái và nhị phân để làm như vậy.

Để thuận tiện, hàm

# translate the image x=25 pixels to the right and y=75 pixels up
translated = imutils.translate(workspace, 25, -75)
7 của
import imutils
imutils.find_function("contour")
7 có thể được sử dụng để xây dựng bộ xương tôpô của hình ảnh.

Đối số đầu tiên,

# translate the image x=25 pixels to the right and y=75 pixels up
translated = imutils.translate(workspace, 25, -75)
9 là kích thước của hạt nhân cấu trúc. Một đối số tùy chọn,
# loop over the angles to rotate the image
for angle in xrange(0, 360, 90):
	# rotate the image and display it
	rotated = imutils.rotate(bridge, angle=angle)
	cv2.imshow("Angle=%d" % (angle), rotated)
0, có thể được sử dụng để kiểm soát phần tử cấu trúc - nó mặc định là
# loop over the angles to rotate the image
for angle in xrange(0, 360, 90):
	# rotate the image and display it
	rotated = imutils.rotate(bridge, angle=angle)
	cv2.imshow("Angle=%d" % (angle), rotated)
1, nhưng có thể là bất kỳ phần tử cấu trúc hợp lệ nào.

Example:

# skeletonize the image
gray = cv2.cvtColor(logo, cv2.COLOR_BGR2GRAY)
skeleton = imutils.skeletonize(gray, size=(3, 3))
cv2.imshow("Skeleton", skeleton)

Output:

Hướng dẫn what is imutils in python - imutils trong python là gì

Hiển thị với matplotlib

Trong các ràng buộc python của opencv, hình ảnh được biểu diễn dưới dạng mảng numpy theo thứ tự BGR. Điều này hoạt động tốt khi sử dụng hàm

# loop over the angles to rotate the image
for angle in xrange(0, 360, 90):
	# rotate the image and display it
	rotated = imutils.rotate(bridge, angle=angle)
	cv2.imshow("Angle=%d" % (angle), rotated)
2. Tuy nhiên, nếu bạn có ý định sử dụng matplotlib, hàm
# loop over the angles to rotate the image
for angle in xrange(0, 360, 90):
	# rotate the image and display it
	rotated = imutils.rotate(bridge, angle=angle)
	cv2.imshow("Angle=%d" % (angle), rotated)
3 giả định hình ảnh theo thứ tự RGB. Một cuộc gọi đơn giản đến
# loop over the angles to rotate the image
for angle in xrange(0, 360, 90):
	# rotate the image and display it
	rotated = imutils.rotate(bridge, angle=angle)
	cv2.imshow("Angle=%d" % (angle), rotated)
4 sẽ giải quyết vấn đề này hoặc bạn có thể sử dụng hàm tiện lợi
# loop over the angles to rotate the image
for angle in xrange(0, 360, 90):
	# rotate the image and display it
	rotated = imutils.rotate(bridge, angle=angle)
	cv2.imshow("Angle=%d" % (angle), rotated)
5.

Example:

# INCORRECT: show the image without converting color spaces
plt.figure("Incorrect")
plt.imshow(cactus)

# CORRECT: convert color spaces before using plt.imshow
plt.figure("Correct")
plt.imshow(imutils.opencv2matplotlib(cactus))
plt.show()

Output:

Hướng dẫn what is imutils in python - imutils trong python là gì

URL để hình ảnh

Đây là hàm

# loop over the angles to rotate the image
for angle in xrange(0, 360, 90):
	# rotate the image and display it
	rotated = imutils.rotate(bridge, angle=angle)
	cv2.imshow("Angle=%d" % (angle), rotated)
6 chấp nhận một tham số duy nhất:
# loop over the angles to rotate the image
for angle in xrange(0, 360, 90):
	# rotate the image and display it
	rotated = imutils.rotate(bridge, angle=angle)
	cv2.imshow("Angle=%d" % (angle), rotated)
7 của hình ảnh chúng tôi muốn tải xuống và chuyển đổi thành một mảng numpy ở định dạng OpenCV. Hàm này thực hiện tải xuống trong bộ nhớ. Hàm
# loop over the angles to rotate the image
for angle in xrange(0, 360, 90):
	# rotate the image and display it
	rotated = imutils.rotate(bridge, angle=angle)
	cv2.imshow("Angle=%d" % (angle), rotated)
6 đã được trình bày chi tiết ở đây trên blog PyimageSearch.

Example:

url = "http://pyimagesearch.com/static/pyimagesearch_logo_github.png"
logo = imutils.url_to_image(url)
cv2.imshow("URL to Image", logo)
cv2.waitKey(0)

Output:

Hướng dẫn what is imutils in python - imutils trong python là gì

Kiểm tra các phiên bản OpenCV

OpenCV 3 cuối cùng đã được phát hành! Nhưng với bản phát hành chính trở thành các vấn đề tương thích ngược (chẳng hạn như với các chức năng

# loop over the angles to rotate the image
for angle in xrange(0, 360, 90):
	# rotate the image and display it
	rotated = imutils.rotate(bridge, angle=angle)
	cv2.imshow("Angle=%d" % (angle), rotated)
9 và
# loop over varying widths to resize the image to
for width in (400, 300, 200, 100):
	# resize the image and display it
	resized = imutils.resize(workspace, width=width)
	cv2.imshow("Width=%dpx" % (width), resized)
0). Nếu bạn muốn mã OpenCV 3 của mình tương thích ngược với OpenCV 2.4.x, bạn sẽ cần cẩn thận để kiểm tra phiên bản OpenCV nào hiện đang được sử dụng và sau đó thực hiện hành động thích hợp.
# loop over varying widths to resize the image to
for width in (400, 300, 200, 100):
	# resize the image and display it
	resized = imutils.resize(workspace, width=width)
	cv2.imshow("Width=%dpx" % (width), resized)
1 và
# loop over varying widths to resize the image to
for width in (400, 300, 200, 100):
	# resize the image and display it
	resized = imutils.resize(workspace, width=width)
	cv2.imshow("Width=%dpx" % (width), resized)
2 là các hàm đơn giản có thể được sử dụng để tự động xác định phiên bản OpenCV của môi trường hiện tại.

Example:

print("Your OpenCV version: {}".format(cv2.__version__))
print("Are you using OpenCV 2.X? {}".format(imutils.is_cv2()))
print("Are you using OpenCV 3.X? {}".format(imutils.is_cv3()))

Output:

import imutils
imutils.find_function("contour")
0

Tự động phát hiện cạnh Canny

Máy dò Canny Edge yêu cầu hai tham số khi thực hiện độ trễ. Tuy nhiên, điều chỉnh hai tham số này để có được bản đồ cạnh tối ưu là không tầm thường, đặc biệt là khi làm việc với một bộ dữ liệu hình ảnh. Thay vào đó, chúng ta có thể sử dụng hàm

# loop over varying widths to resize the image to
for width in (400, 300, 200, 100):
	# resize the image and display it
	resized = imutils.resize(workspace, width=width)
	cv2.imshow("Width=%dpx" % (width), resized)
3 sử dụng trung bình của cường độ pixel thang độ xám để rút ra các ngưỡng trên và dưới. Bạn có thể đọc thêm về chức năng
# loop over varying widths to resize the image to
for width in (400, 300, 200, 100):
	# resize the image and display it
	resized = imutils.resize(workspace, width=width)
	cv2.imshow("Width=%dpx" % (width), resized)
3 ở đây.

Example:

import imutils
imutils.find_function("contour")
1

Output:

Hướng dẫn what is imutils in python - imutils trong python là gì

Biến đổi phối cảnh 4 điểm

Một nhiệm vụ phổ biến trong tầm nhìn máy tính và xử lý hình ảnh là thực hiện biến đổi phối cảnh 4 điểm của ROI trong một hình ảnh và có được một từ trên xuống, "Chim Eye Eye" của ROI. Mô -đun

# loop over varying widths to resize the image to
for width in (400, 300, 200, 100):
	# resize the image and display it
	resized = imutils.resize(workspace, width=width)
	cv2.imshow("Width=%dpx" % (width), resized)
5 chăm sóc điều này cho bạn. Một ví dụ trong thế giới thực về việc áp dụng biến đổi phối cảnh 4 điểm có thể bị ràng buộc trong blog này trên việc xây dựng một máy quét tài liệu di động kick-ass.

Thí dụ

Xem nội dung của

# loop over varying widths to resize the image to
for width in (400, 300, 200, 100):
	# resize the image and display it
	resized = imutils.resize(workspace, width=width)
	cv2.imshow("Width=%dpx" % (width), resized)
6

Output:

Hướng dẫn what is imutils in python - imutils trong python là gì

Sắp xếp đường viền

Các đường viền trở lại từ

# loop over the angles to rotate the image
for angle in xrange(0, 360, 90):
	# rotate the image and display it
	rotated = imutils.rotate(bridge, angle=angle)
	cv2.imshow("Angle=%d" % (angle), rotated)
9 chưa được phân loại. Bằng cách sử dụng mô-đun
# loop over varying widths to resize the image to
for width in (400, 300, 200, 100):
	# resize the image and display it
	resized = imutils.resize(workspace, width=width)
	cv2.imshow("Width=%dpx" % (width), resized)
8, hàm
# loop over varying widths to resize the image to
for width in (400, 300, 200, 100):
	# resize the image and display it
	resized = imutils.resize(workspace, width=width)
	cv2.imshow("Width=%dpx" % (width), resized)
9, chúng ta có thể sắp xếp một danh sách các đường viền từ từ trái sang phải, từ phải, từ trên xuống dưới và từ dưới lên, tương ứng.

Example:

Xem nội dung của

# skeletonize the image
gray = cv2.cvtColor(logo, cv2.COLOR_BGR2GRAY)
skeleton = imutils.skeletonize(gray, size=(3, 3))
cv2.imshow("Skeleton", skeleton)
0

Output:

Hướng dẫn what is imutils in python - imutils trong python là gì

(Đệ quy) Liệt kê các đường dẫn đến hình ảnh

Mô hình phụ

# skeletonize the image
gray = cv2.cvtColor(logo, cv2.COLOR_BGR2GRAY)
skeleton = imutils.skeletonize(gray, size=(3, 3))
cv2.imshow("Skeleton", skeleton)
1 của
import imutils
imutils.find_function("contour")
7 bao gồm một hàm để tìm hình ảnh đệ quy dựa trên thư mục gốc.

Example:

Giả sử chúng tôi đang ở trong thư mục

# skeletonize the image
gray = cv2.cvtColor(logo, cv2.COLOR_BGR2GRAY)
skeleton = imutils.skeletonize(gray, size=(3, 3))
cv2.imshow("Skeleton", skeleton)
3, hãy liệt kê các nội dung của
# skeletonize the image
gray = cv2.cvtColor(logo, cv2.COLOR_BGR2GRAY)
skeleton = imutils.skeletonize(gray, size=(3, 3))
cv2.imshow("Skeleton", skeleton)
4:

import imutils
imutils.find_function("contour")
2

Output:

import imutils
imutils.find_function("contour")
3

Imutils thay đổi kích thước là gì?

Chức năng thay đổi kích thước này của iMutils duy trì tỷ lệ khung hình và cung cấp độ rộng đối số từ khóa và chiều cao để hình ảnh có thể được thay đổi kích thước theo chiều rộng/chiều cao trong khi (1) duy trì tỷ lệ khung hình và (2) đảm bảo kích thước của hình ảnh không phảiđược tính toán rõ ràng bởi các nhà phát triển.

Làm cách nào để nhập iMutils?

Cài đặt imutils trên Windows #..
Nhấp chuột phải vào kết quả tìm kiếm, nhấp vào "Chạy với tư cách quản trị viên" và chạy lệnh Cài đặt PIP ..
Bạn có thể xác minh rằng mô -đun Imutils được cài đặt bằng cách sử dụng lệnh pip show imutils ..
Nếu lệnh python3 -m venv venv không hoạt động, hãy sử dụng python -m venv venv thay thế ..

Làm cách nào để tải xuống imutils trong anaconda?

Bạn có thể cài đặt PIP trên nền tảng Anaconda ...
Sử dụng PIP Cài đặt Conda ..
Sau đó sử dụng PIP để cài đặt imutils: Cài đặt pip iMutils ..