Hướng dẫn how do you load a set of images in python? - làm thế nào để bạn tải một tập hợp các hình ảnh trong python?

Tôi đang cố gắng mở một bộ hình ảnh trong Python, nhưng tôi hơi bối rối về cách tôi nên làm điều đó. Tôi biết cách làm điều đó với một hình ảnh, nhưng tôi không có manh mối về cách xử lý hàng trăm hình ảnh.

Tôi có một thư mục tệp với một vài trăm hình ảnh .jpg. Tôi muốn tải chúng trong một chương trình Python để thực hiện việc học máy về chúng. Làm thế nào tôi có thể làm điều này đúng cách?

Tôi chưa có bất kỳ mã nào vì tôi đã phải vật lộn với điều này.

Nhưng ý tưởng của tôi trong mã giả là

dataset = load(images)
do some manipulations on it

Làm thế nào tôi đã làm nó trước đây:

from sklearn.svm import LinearSVC
from numpy import genfromtxt,savetxt

load = lambda x: genfromtxt(open(x,"r"),delimiter = ",",dtype = "f8")[1:]
dataset = load("train.csv")
train = [x[1:] for x in dataset]
target = [x[0] for x in dataset]
test = load("test.csv")

linear = LinearSVC()
linear.fit(train,target)

savetxt("digit2.csv",linear.predict(test),delimiter = ",", fmt = "%d")

Mà hoạt động tốt vì định dạng. Al dữ liệu nằm trong một tệp.

Cập nhật lần cuối vào ngày 12 tháng 9 năm 2019

Trước khi bạn có thể phát triển các mô hình dự đoán cho dữ liệu hình ảnh, bạn phải tìm hiểu cách tải và thao tác với hình ảnh và hình ảnh.

Thư viện tiêu chuẩn phổ biến và thực tế nhất trong Python để tải và làm việc với dữ liệu hình ảnh là gối. Gối là phiên bản cập nhật của Thư viện hình ảnh Python, hoặc PIL, và hỗ trợ một loạt các chức năng thao tác hình ảnh đơn giản và tinh vi. Nó cũng là cơ sở cho hỗ trợ hình ảnh đơn giản trong các thư viện Python khác như Scipy và Matplotlib.

Trong hướng dẫn này, bạn sẽ khám phá cách tải và thao tác dữ liệu hình ảnh bằng thư viện Gối Python.

Sau khi hoàn thành hướng dẫn này, bạn sẽ biết:

  • Cách cài đặt thư viện gối và xác nhận nó đang hoạt động chính xác.
  • Cách tải hình ảnh từ tệp, chuyển đổi hình ảnh được tải sang mảng numpy và lưu hình ảnh ở các định dạng mới.
  • Cách thực hiện các biến đổi cơ bản thành dữ liệu hình ảnh như thay đổi kích thước, lật, xoay và cắt xén.

Khởi động dự án của bạn với cuốn sách mới của tôi Deep Learning for Computer Vision, bao gồm các hướng dẫn từng bước và các tệp mã nguồn Python cho tất cả các ví dụ. with my new book Deep Learning for Computer Vision, including step-by-step tutorials and the Python source code files for all examples.

Bắt đầu nào.

  • Cập nhật tháng 9/2019: Cập nhật để phản ánh các thay đổi nhỏ đối với API gối.: Updated to reflect minor changes to Pillow API.

Tổng quan hướng dẫn

Hướng dẫn này được chia thành sáu phần; họ đang:

  1. Cách cài đặt gối
  2. Cách tải và hiển thị hình ảnh
  3. Cách chuyển đổi hình ảnh thành mảng numpy và trở lại
  4. Cách lưu hình ảnh vào tệp
  5. Cách thay đổi kích thước hình ảnh
  6. Cách lật, xoay và cắt hình ảnh

Cách cài đặt gối

Cách tải và hiển thị hình ảnh

Cách chuyển đổi hình ảnh thành mảng numpy và trở lại

Cách lưu hình ảnh vào tệp

Cách thay đổi kích thước hình ảnh

Cách lật, xoay và cắt hình ảnh

  • Thư viện hình ảnh Python, hoặc viết tắt là PIL, là một thư viện nguồn mở để tải và điều khiển hình ảnh.

Nó đã được phát triển và cung cấp hơn 25 năm trước và đã trở thành API tiêu chuẩn thực tế để làm việc với hình ảnh trong Python. Thư viện hiện không còn tồn tại và không còn được cập nhật và không hỗ trợ Python 3.

Gối là một thư viện PIL hỗ trợ Python 3 và là thư viện hiện đại ưa thích để thao tác hình ảnh trong Python. Nó thậm chí còn được yêu cầu để tải hình ảnh đơn giản và lưu trong các thư viện khoa học Python khác như Scipy và Matplotlib.

  • Thư viện gối được cài đặt như một phần của hầu hết các cài đặt SCIPY; Ví dụ, nếu bạn đang sử dụng Anaconda.

Để được trợ giúp thiết lập môi trường SCIPY của bạn, hãy xem hướng dẫn từng bước:

Cách thiết lập môi trường Python để học máy và học sâu với Anaconda

Nếu bạn quản lý việc cài đặt các gói phần mềm Python cho máy trạm của mình, bạn có thể dễ dàng cài đặt gối bằng PIP; Ví dụ:PIL

Để được trợ giúp thêm cài đặt gối theo cách thủ công, xem:('Pillow Version:',PIL.__version__)

Hướng dẫn cài đặt gối

Gối được xây dựng trên đỉnh của PIL cũ và bạn có thể xác nhận rằng thư viện đã được cài đặt chính xác bằng cách in số phiên bản; Ví dụ:

# Kiểm tra số phiên bản Gối

nhập khẩu pil

in ('phiên bản gối:', pil .__ phiên bản__)

Cách tải và hiển thị hình ảnh

Cách chuyển đổi hình ảnh thành mảng numpy và trở lại

Cách lưu hình ảnh vào tệp

Hướng dẫn how do you load a set of images in python? - làm thế nào để bạn tải một tập hợp các hình ảnh trong python?

Cách thay đổi kích thước hình ảnh

  • Cách lật, xoay và cắt hình ảnh

Thư viện hình ảnh Python, hoặc viết tắt là PIL, là một thư viện nguồn mở để tải và điều khiển hình ảnh.

Nó đã được phát triển và cung cấp hơn 25 năm trước và đã trở thành API tiêu chuẩn thực tế để làm việc với hình ảnh trong Python. Thư viện hiện không còn tồn tại và không còn được cập nhật và không hỗ trợ Python 3.

Gối là một thư viện PIL hỗ trợ Python 3 và là thư viện hiện đại ưa thích để thao tác hình ảnh trong Python. Nó thậm chí còn được yêu cầu để tải hình ảnh đơn giản và lưu trong các thư viện khoa học Python khác như Scipy và Matplotlib.

Thư viện gối được cài đặt như một phần của hầu hết các cài đặt SCIPY; Ví dụ, nếu bạn đang sử dụng Anaconda.

Để được trợ giúp thiết lập môi trường SCIPY của bạn, hãy xem hướng dẫn từng bước:

Cách thiết lập môi trường Python để học máy và học sâu với Anaconda

Nếu bạn quản lý việc cài đặt các gói phần mềm Python cho máy trạm của mình, bạn có thể dễ dàng cài đặt gối bằng PIP; Ví dụ:PIL import Image

Để được trợ giúp thêm cài đặt gối theo cách thủ công, xem:

image=Image.open('opera_house.jpg')=Image.open('opera_house.jpg')

# Tóm tắt một số chi tiết về hình ảnh

print(image.format)(image.format)

print(image.mode)(image.mode)

print(image.size)(image.size)

# hiển thị hình ảnh

image.show().show()

Chạy ví dụ trước tiên sẽ tải hình ảnh, báo cáo định dạng, chế độ và kích thước, sau đó hiển thị hình ảnh trên máy tính để bàn của bạn.

Hình ảnh được hiển thị bằng cách sử dụng ứng dụng xem trước hình ảnh mặc định cho hệ điều hành của bạn, chẳng hạn như xem trước trên macOS.

Hướng dẫn how do you load a set of images in python? - làm thế nào để bạn tải một tập hợp các hình ảnh trong python?

Nhà hát Opera Sydney được hiển thị bằng ứng dụng xem trước hình ảnh mặc định

Bây giờ bạn đã biết cách tải một hình ảnh, hãy để xem cách bạn có thể truy cập dữ liệu pixel của hình ảnh.

Cách chuyển đổi hình ảnh thành mảng numpy và trở lại

Thông thường trong học máy, chúng tôi muốn làm việc với hình ảnh dưới dạng các mảng dữ liệu pixel.

Với Pillow được cài đặt, bạn cũng có thể sử dụng thư viện matplotlib để tải hình ảnh và hiển thị nó trong khung matplotlib.

Điều này có thể đạt được bằng cách sử dụng hàm imread () tải trực tiếp hình ảnh một mảng pixel và hàm imshow () sẽ hiển thị một mảng pixel dưới dạng hình ảnh.

Ví dụ dưới đây tải và hiển thị cùng một hình ảnh bằng cách sử dụng matplotlib, đến lượt nó, sẽ sử dụng gối dưới vỏ.

# Tải và hiển thị hình ảnh với matplotlib

từ hình ảnh nhập matplotlibmatplotlib import image

từ pyplot nhập khẩu matplotlibmatplotlib import pyplot

# tải hình ảnh dưới dạng mảng pixel

data=image.imread('opera_house.jpg')=image.imread('opera_house.jpg')

# Tóm tắt hình dạng của mảng pixel

print(data.dtype)(data.dtype)

print(data.shape)(data.shape)

# Hiển thị mảng pixel dưới dạng hình ảnh

pyplot.imshow(data).imshow(data)

pyplot.show().show()

Chạy ví dụ đầu tiên tải hình ảnh và sau đó báo cáo loại dữ liệu của mảng, trong trường hợp này là số nguyên không dấu 8 bit, sau đó báo cáo hình dạng của mảng, trong trường hợp này, rộng 360 pixel bằng 640 pixel cao và ba kênh cho Màu đỏ, xanh lá cây và xanh dương.

Cuối cùng, hình ảnh được hiển thị bằng matplotlib.

Hướng dẫn how do you load a set of images in python? - làm thế nào để bạn tải một tập hợp các hình ảnh trong python?

Nhà hát Opera Sydney được hiển thị bằng Matplotlib

Các chức năng trình bao bọc matplotlib có thể hiệu quả hơn so với sử dụng gối trực tiếp.

Tuy nhiên, bạn có thể truy cập dữ liệu pixel từ hình ảnh gối. Có lẽ cách đơn giản nhất là xây dựng một mảng numpy và truyền trong đối tượng hình ảnh. Quá trình có thể được đảo ngược chuyển đổi một mảng dữ liệu pixel nhất định thành một đối tượng hình ảnh gối bằng hàm Image.FromArray (). Điều này có thể hữu ích nếu dữ liệu hình ảnh được thao tác như một mảng numpy và sau đó bạn muốn lưu nó sau dưới dạng tệp PNG hoặc JPEG.

Ví dụ bên dưới tải ảnh dưới dạng đối tượng hình ảnh gối và chuyển đổi nó thành một mảng numpy, sau đó chuyển đổi nó trở lại một đối tượng hình ảnh một lần nữa.

# tải hình ảnh và chuyển đổi sang và từ mảng numpy

Từ hình ảnh nhập khẩu PILPIL import Image

từ nhập khẩu numpy asarraynumpy import asarray

# Tải hình ảnh

image=Image.open('opera_house.jpg')=Image.open('opera_house.jpg')

# Chuyển đổi hình ảnh thành mảng numpy

data=asarray(image)=asarray(image)

# Tóm tắt hình dạng

print(data.shape)(data.shape)

# Tạo hình ảnh gối

image2=Image.fromarray(data)=Image.fromarray(data)

# Tóm tắt chi tiết hình ảnh

print(image2.format)(image2.format)

print(image2.mode)(image2.mode)

print(image2.size)(image2.size)

Chạy ví dụ đầu tiên tải ảnh dưới dạng hình ảnh gối sau đó chuyển đổi nó thành một mảng numpy và báo cáo hình dạng của mảng. Cuối cùng, mảng được chuyển đổi trở lại thành một hình ảnh gối và các chi tiết được báo cáo.

(360, 640, 3)

JPEG

RGB

(640, 360)

Cả hai cách tiếp cận đều có hiệu quả để tải dữ liệu hình ảnh vào các mảng numpy, mặc dù hàm matplotlib imread () sử dụng ít dòng mã hơn so với tải và chuyển đổi một đối tượng hình ảnh gối và có thể được ưu tiên.

Ví dụ: bạn có thể dễ dàng tải tất cả các hình ảnh trong một thư mục dưới dạng danh sách như sau:

# Tải tất cả hình ảnh trong một thư mục

Từ Nhập OS ListDDiros import listdir

từ hình ảnh nhập matplotlibmatplotlib import image

# Tải tất cả hình ảnh trong một thư mục

loaded_images=list()=list()

Từ Nhập OS ListDDirfilename in listdir('images'):

forfilename inlistdir ('hình ảnh'):

img_data=image.imread('images/'+filename)=image.imread('images/'+filename)

# tải hình ảnh

loaded_images.append(img_data).append(img_data)

# Lưu trữ hình ảnh được tải('> loaded %s %s'%(filename,img_data.shape))

In ('> Đã tải %s %s' %(tên tệp, img_data.shape)))

Bây giờ chúng ta đã biết cách tải hình ảnh dưới dạng mảng numpy, hãy để Lôi nhìn vào cách lưu hình ảnh vào tệp.

Cách lưu hình ảnh vào tệp

Một đối tượng hình ảnh có thể được lưu bằng cách gọi hàm Save ().

Điều này có thể hữu ích nếu bạn muốn lưu một hình ảnh ở một định dạng khác, trong trường hợp đó, đối số ‘định dạng‘ có thể được chỉ định, chẳng hạn như PNG, GIF hoặc PEG.

Ví dụ: danh sách mã bên dưới tải ảnh ở định dạng JPEG và lưu nó ở định dạng PNG.

Từ hình ảnh nhập khẩu PILPIL import Image

# Tải hình ảnh

image=Image.open('opera_house.jpg')=Image.open('opera_house.jpg')

# Chuyển đổi hình ảnh thành mảng numpy

image.save('opera_house.png',format='PNG').save('opera_house.png', format='PNG')

# Tóm tắt hình dạng

image2=Image.open('opera_house.png')=Image.open('opera_house.png')

print(image2.format)(image2.format)

# Tạo hình ảnh gối

# Tóm tắt chi tiết hình ảnh

Có một số cách để chuyển đổi hình ảnh thành thang độ xám, nhưng Gối cung cấp hàm chuyển đổi () và chế độ ‘L‘ sẽ chuyển đổi hình ảnh thành thang độ xám.

# Ví dụ về việc lưu phiên bản thang màu xám của hình ảnh được tải

Từ hình ảnh nhập khẩu PILPIL import Image

# Tải hình ảnh

image=Image.open('opera_house.jpg')=Image.open('opera_house.jpg')

# Chuyển đổi hình ảnh thành thang độ xám

gs_image=image.convert(mode='L')= image.convert(mode='L')

# Lưu ở định dạng JPEG

gs_image.save('opera_house_grayscale.jpg').save('opera_house_grayscale.jpg')

# Tải lại hình ảnh và hiển thị nó

image2=Image.open('opera_house_grayscale.jpg')= Image.open('opera_house_grayscale.jpg')

# hiển thị hình ảnh

image2.show().show()

Chạy ví dụ tải ảnh, chuyển đổi nó thành thang độ xám, lưu hình ảnh trong một tệp mới, sau đó tải lại và hiển thị nó để xác nhận rằng ảnh hiện là thang độ xám thay vì màu.

Hướng dẫn how do you load a set of images in python? - làm thế nào để bạn tải một tập hợp các hình ảnh trong python?

Ví dụ về phiên bản ảnh của ảnh chụp ảnh

Cách thay đổi kích thước hình ảnh

Điều quan trọng là có thể thay đổi kích thước hình ảnh trước khi mô hình hóa.

Đôi khi nó là mong muốn để thu nhỏ tất cả các hình ảnh để có cùng chiều rộng hoặc chiều cao. Điều này có thể đạt được với gối bằng hàm hình thu nhỏ (). Hàm có một bộ xử lý với chiều rộng và chiều cao và hình ảnh sẽ được thay đổi kích thước sao cho chiều rộng và chiều cao của hình ảnh bằng hoặc nhỏ hơn hình dạng được chỉ định.

Ví dụ, bức ảnh thử nghiệm mà chúng tôi đã làm việc có chiều rộng và chiều cao là (640, 360). Chúng ta có thể thay đổi kích thước nó thành (100, 100), trong trường hợp đó là kích thước lớn nhất, trong trường hợp này, chiều rộng, sẽ giảm xuống còn 100 và chiều cao sẽ được chia tỷ lệ để giữ lại tỷ lệ khung hình của hình ảnh.

Ví dụ dưới đây sẽ tải ảnh và tạo một hình thu nhỏ nhỏ hơn với chiều rộng và chiều cao 100 pixel.

# Tạo hình thu nhỏ của hình ảnh

Từ hình ảnh nhập khẩu PILPIL import Image

# Tải hình ảnh

image=Image.open('opera_house.jpg')=Image.open('opera_house.jpg')

# Chuyển đổi hình ảnh thành thang độ xám

print(image.size)(image.size)

# Lưu ở định dạng JPEG

image.thumbnail((100,100)).thumbnail((100,100))

# Tải lại hình ảnh và hiển thị nó

print(image.size)(image.size)

# hiển thị hình ảnh

Chạy ví dụ tải ảnh, chuyển đổi nó thành thang độ xám, lưu hình ảnh trong một tệp mới, sau đó tải lại và hiển thị nó để xác nhận rằng ảnh hiện là thang độ xám thay vì màu.

Ví dụ về phiên bản ảnh của ảnh chụp ảnh

Cách thay đổi kích thước hình ảnh

Điều quan trọng là có thể thay đổi kích thước hình ảnh trước khi mô hình hóa.

Từ hình ảnh nhập khẩu PILPIL import Image

# Tải hình ảnh

image=Image.open('opera_house.jpg')=Image.open('opera_house.jpg')

# Chuyển đổi hình ảnh thành thang độ xám

print(image.size)(image.size)

# Lưu ở định dạng JPEG

img_resized=image.resize((200,200))=image.resize((200,200))

# Tải lại hình ảnh và hiển thị nó

print(img_resized.size)(img_resized.size)

# hiển thị hình ảnh

Chạy ví dụ tải ảnh, chuyển đổi nó thành thang độ xám, lưu hình ảnh trong một tệp mới, sau đó tải lại và hiển thị nó để xác nhận rằng ảnh hiện là thang độ xám thay vì màu.

Ví dụ về phiên bản ảnh của ảnh chụp ảnh

Hướng dẫn how do you load a set of images in python? - làm thế nào để bạn tải một tập hợp các hình ảnh trong python?

Cách thay đổi kích thước hình ảnh

Điều quan trọng là có thể thay đổi kích thước hình ảnh trước khi mô hình hóa.

Đôi khi nó là mong muốn để thu nhỏ tất cả các hình ảnh để có cùng chiều rộng hoặc chiều cao. Điều này có thể đạt được với gối bằng hàm hình thu nhỏ (). Hàm có một bộ xử lý với chiều rộng và chiều cao và hình ảnh sẽ được thay đổi kích thước sao cho chiều rộng và chiều cao của hình ảnh bằng hoặc nhỏ hơn hình dạng được chỉ định.

Ví dụ, bức ảnh thử nghiệm mà chúng tôi đã làm việc có chiều rộng và chiều cao là (640, 360). Chúng ta có thể thay đổi kích thước nó thành (100, 100), trong trường hợp đó là kích thước lớn nhất, trong trường hợp này, chiều rộng, sẽ giảm xuống còn 100 và chiều cao sẽ được chia tỷ lệ để giữ lại tỷ lệ khung hình của hình ảnh.

Ví dụ dưới đây sẽ tải ảnh và tạo một hình thu nhỏ nhỏ hơn với chiều rộng và chiều cao 100 pixel.

# Tạo hình thu nhỏ của hình ảnh

# Báo cáo kích thước của hình ảnh

# Tạo một hình thu nhỏ và tỷ lệ khung hình bảo tồn

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

# Báo cáo kích thước của hình thu nhỏ

Từ hình ảnh nhập khẩu PILPIL import Image

Chạy ví dụ đầu tiên tải ảnh và báo cáo chiều rộng và chiều cao. Hình ảnh sau đó được thay đổi kích thước, trong trường hợp này, chiều rộng được giảm xuống còn 100 pixel và chiều cao giảm xuống còn 56 pixel, duy trì tỷ lệ khung hình của hình ảnh gốc.matplotlib import pyplot

Chúng tôi có thể không muốn bảo toàn tỷ lệ khung hình, và thay vào đó, chúng tôi có thể muốn buộc các pixel thành một hình dạng mới.

image=Image.open('opera_house.jpg')=Image.open('opera_house.jpg')

Điều này có thể đạt được bằng cách sử dụng hàm Resize () cho phép bạn chỉ định chiều rộng và chiều cao tính bằng pixel và hình ảnh sẽ được giảm hoặc kéo dài để phù hợp với hình dạng mới.

hoz_flip=image.transpose(Image.FLIP_LEFT_RIGHT) =image.transpose(Image.FLIP_LEFT_RIGHT)

Ví dụ dưới đây cho thấy cách thay đổi kích thước một hình ảnh mới và bỏ qua tỷ lệ khung hình ban đầu.

ver_flip=image.transpose(Image.FLIP_TOP_BOTTOM)=image.transpose(Image.FLIP_TOP_BOTTOM)

# vẽ cả ba hình ảnh bằng cách sử dụng matplotlib

pyplot.subplot(311).subplot(311)

pyplot.imshow(image).imshow(image)

pyplot.subplot(312).subplot(312)

pyplot.imshow(hoz_flip).imshow(hoz_flip)

pyplot.subplot(313).subplot(313)

pyplot.imshow(ver_flip).imshow(ver_flip)

pyplot.show().show()

Chạy ví dụ tải ảnh và tạo các phiên bản lật ngang và dọc của bức ảnh, sau đó vẽ cả ba phiên bản dưới dạng phụ sử dụng matplotlib.

Bạn sẽ lưu ý rằng hàm imshow () có thể vẽ trực tiếp đối tượng hình ảnh mà không phải chuyển đổi nó thành một mảng numpy.

Hướng dẫn how do you load a set of images in python? - làm thế nào để bạn tải một tập hợp các hình ảnh trong python?

Biểu đồ của các phiên bản gốc, ngang và dọc của một bức ảnh

Xoay hình ảnh

Một hình ảnh có thể được quay bằng cách sử dụng hàm xoay () và truyền trong góc cho vòng quay.

Hàm cung cấp điều khiển bổ sung như có hay không mở rộng kích thước của hình ảnh để phù hợp với các giá trị pixel được xoay (mặc định là clip cùng kích thước), trong đó tập trung vào hình ảnh (mặc định là trung tâm) và Điền màu cho các pixel bên ngoài hình ảnh (mặc định là màu đen).

Ví dụ dưới đây tạo ra một vài phiên bản xoay của hình ảnh.

# Tạo các phiên bản xoay của hình ảnh

Từ hình ảnh nhập khẩu PILPIL import Image

từ pyplot nhập khẩu matplotlibmatplotlib import pyplot

# tải hình ảnh

image=Image.open('opera_house.jpg')=Image.open('opera_house.jpg')

# âm mưu hình ảnh gốc

pyplot.subplot(311).subplot(311)

pyplot.imshow(image).imshow(image)

# Xoay 45 độ

pyplot.subplot(312).subplot(312)

pyplot.imshow(image.rotate(45)).imshow(image.rotate(45))

# Xoay 90 độ

pyplot.subplot(313).subplot(313)

pyplot.imshow(image.rotate(90)).imshow(image.rotate(90))

pyplot.show().show()

Chạy ví dụ vẽ các bức ảnh gốc, sau đó là một phiên bản của bức ảnh quay 45 độ và khác xoay 90 độ.

Bạn có thể thấy rằng trong cả hai vòng quay, các pixel được cắt theo kích thước ban đầu của hình ảnh và các pixel trống được lấp đầy với màu đen.

Hướng dẫn how do you load a set of images in python? - làm thế nào để bạn tải một tập hợp các hình ảnh trong python?

Cốt truyện của phiên bản gốc và xoay của một bức ảnh

Hình ảnh bị cắt

Một hình ảnh có thể được cắt: nghĩa là, một mảnh có thể được cắt ra để tạo ra một hình ảnh mới, sử dụng hàm crop ().

Hàm cây trồng có một đối số tuple xác định hai tọa độ x/y của hộp để cắt ra khỏi hình ảnh. Ví dụ: nếu hình ảnh là 2.000 x 2.000 pixel, chúng ta có thể cắt ra một hộp 100 x 100 ở giữa hình ảnh bằng cách xác định một tuple với các điểm trên bên trái và dưới cùng bên phải (950, 950, 1050, 1050 ).

Ví dụ dưới đây cho thấy cách tạo một hình ảnh mới như một cây trồng từ một hình ảnh được tải.

# Ví dụ về việc cắt một hình ảnh

Từ hình ảnh nhập khẩu PILPIL import Image

# tải hình ảnh

image=Image.open('opera_house.jpg')=Image.open('opera_house.jpg')

# âm mưu hình ảnh gốc

cropped=image.crop((100,100,200,200))= image.crop((100,100,200,200))

# Xoay 45 độ

cropped.show().show()

# Xoay 90 độ

Hướng dẫn how do you load a set of images in python? - làm thế nào để bạn tải một tập hợp các hình ảnh trong python?

Chạy ví dụ vẽ các bức ảnh gốc, sau đó là một phiên bản của bức ảnh quay 45 độ và khác xoay 90 độ.

Bạn có thể thấy rằng trong cả hai vòng quay, các pixel được cắt theo kích thước ban đầu của hình ảnh và các pixel trống được lấp đầy với màu đen.

Cốt truyện của phiên bản gốc và xoay của một bức ảnh

  • Hình ảnh bị cắt. Experiment with Pillow functions for reading and manipulating images with your own image data.
  • Một hình ảnh có thể được cắt: nghĩa là, một mảnh có thể được cắt ra để tạo ra một hình ảnh mới, sử dụng hàm crop ().. Review the Pillow API documentation and experiment with additional image manipulation functions.
  • Hàm cây trồng có một đối số tuple xác định hai tọa độ x/y của hộp để cắt ra khỏi hình ảnh. Ví dụ: nếu hình ảnh là 2.000 x 2.000 pixel, chúng ta có thể cắt ra một hộp 100 x 100 ở giữa hình ảnh bằng cách xác định một tuple với các điểm trên bên trái và dưới cùng bên phải (950, 950, 1050, 1050 ).. Write a function to create augmented versions of an image ready for use with a deep learning neural network.

Ví dụ dưới đây cho thấy cách tạo một hình ảnh mới như một cây trồng từ một hình ảnh được tải.

# Ví dụ về việc cắt một hình ảnh

# Tạo hình ảnh được cắt

  • # hiển thị hình ảnh bị cắt
  • Chạy ví dụ tạo ra một hình ảnh vuông bị cắt là 100 pixel bắt đầu từ 100.100 và kéo dài xuống và rời khỏi 200.200. Quảng trường cắt sau đó được hiển thị.
  • Ví dụ về một phiên bản bị cắt của một bức ảnh
  • Phần mở rộng
  • Phần này liệt kê một số ý tưởng để mở rộng hướng dẫn mà bạn có thể muốn khám phá.
  • Hình ảnh của riêng bạn. Thử nghiệm với các chức năng gối để đọc và điều khiển hình ảnh với dữ liệu hình ảnh của riêng bạn.
  • Biến đổi nhiều hơn. Xem lại tài liệu API gối và thử nghiệm với các chức năng thao tác hình ảnh bổ sung.
  • Hình ảnh xử lý trước. Viết một chức năng để tạo các phiên bản tăng cường của một hình ảnh sẵn sàng để sử dụng với một mạng lưới thần kinh học sâu.

Nếu bạn khám phá bất kỳ phần mở rộng nào trong số này, tôi sẽ rất thích biết.

Đọc thêm

Phần này cung cấp nhiều tài nguyên hơn về chủ đề nếu bạn đang muốn đi sâu hơn.

  • Trang chủ gối
  • Hướng dẫn cài đặt gối
  • Tài liệu API gối (PIL Fork)

Hướng dẫn Cẩm nang Gối
Ask your questions in the comments below and I will do my best to answer.

Dự án Gối Github

Hướng dẫn how do you load a set of images in python? - làm thế nào để bạn tải một tập hợp các hình ảnh trong python?

Trang chủ Thư viện hình ảnh Python (PIL)

Thư viện hình ảnh Python, Wikipedia.

Matplotlib: Hướng dẫn hình ảnh
Deep Learning for Computer Vision

Bản tóm tắtself-study tutorials on topics like:
classification, object detection (yolo and rcnn), face recognition (vggface and facenet), data preparation and much more...

Trong hướng dẫn này, bạn đã phát hiện ra cách tải và thao tác dữ liệu hình ảnh bằng thư viện Pillow Python.

Cụ thể, bạn đã học được:

Cách cài đặt thư viện gối và xác nhận nó đang hoạt động chính xác.