Cách tải hình ảnh trong python

Đến cuối hướng dẫn này, bạn sẽ hiểu rõ về cách tải hình ảnh từ đĩa bằng OpenCV

Để tìm hiểu cách tải hình ảnh từ đĩa bằng OpenCV và

$ pip install opencv-contrib-python
0, chỉ cần tiếp tục đọc

Tìm kiếm mã nguồn cho bài viết này?

Hình ảnh tải OpenCV [cv2. imread]

Trong phần đầu tiên của hướng dẫn này, chúng ta sẽ thảo luận cách tải ảnh từ đĩa bằng OpenCV và hàm

$ pip install opencv-contrib-python
0

Từ đó, bạn sẽ học cách định cấu hình môi trường phát triển của mình để cài đặt OpenCV

Sau đó, chúng tôi sẽ xem xét cấu trúc thư mục dự án của mình, tiếp theo là triển khai

$ pip install opencv-contrib-python
3, một tập lệnh Python sẽ tải hình ảnh đầu vào từ đĩa bằng OpenCV và hàm
$ pip install opencv-contrib-python
0

Chúng tôi sẽ kết thúc hướng dẫn này với một cuộc thảo luận về kết quả của chúng tôi

Làm cách nào để chúng tôi tải hình ảnh từ đĩa bằng OpenCV?

Hình 1. Để tải một hình ảnh từ đĩa với OpenCV, chúng ta có thể sử dụng chức năng
$ pip install opencv-contrib-python
0

Để tải ảnh đầu vào từ đĩa bằng OpenCV, chúng ta phải sử dụng hàm

$ pip install opencv-contrib-python
0 [Hình 1]

Hàm

$ pip install opencv-contrib-python
0 chấp nhận một tham số duy nhất, đường dẫn đến nơi hình ảnh của bạn tồn tại trên đĩa của bạn

image = cv2.imread["path/to/image.png"]

Hàm OpenCV

$ pip install opencv-contrib-python
0 sau đó trả về một trong hai giá trị

  1. Một mảng NumPy đại diện cho hình ảnh có hình dạng
    $ pip install opencv-contrib-python
    9, mà chúng ta sẽ thảo luận sau trong hướng dẫn này
  2. Đối tượng
    $ pip install opencv-contrib-python
    00, có nghĩa là không thể tải hình ảnh

Thông thường, hàm

$ pip install opencv-contrib-python
0 sẽ trả về
$ pip install opencv-contrib-python
02 nếu đường dẫn đến hình ảnh đầu vào không hợp lệ, . so be sure to double-check and triple-check your input image paths! Chức năng này cũng sẽ không hoạt động đối với các loại tệp hình ảnh không được hỗ trợ, mặc dù OpenCV có thể đọc nhiều loại tệp, bao gồm JPEG, PNG, TIFF và GIF.

Hãy xem cách lấy thư viện OpenCV trước khi đưa hàm

$ pip install opencv-contrib-python
0 vào hoạt động

Định cấu hình môi trường phát triển của bạn

Trước khi đi sâu vào tải hình ảnh bằng OpenCV, bạn cần cài đặt thư viện trên hệ thống của mình

May mắn thay, OpenCV có thể cài đặt bằng pip

$ pip install opencv-contrib-python

Nếu bạn cần trợ giúp về cấu hình môi trường phát triển cho OpenCV 4. 3+, tôi thực sự khuyên bạn nên đọc hướng dẫn cài đặt OpenCV pip của tôi — nó sẽ giúp bạn thiết lập và chạy trong vài phút

Bạn gặp sự cố khi định cấu hình môi trường phát triển của mình?

Hình 2. Gặp sự cố khi định cấu hình môi trường nhà phát triển của bạn?

Tất cả những gì đã nói, là bạn

  • Thời gian ngắn?
  • Tìm hiểu trên hệ thống bị khóa quản trị của chủ nhân của bạn?
  • Bạn muốn bỏ qua những rắc rối khi chiến đấu với dòng lệnh, trình quản lý gói và môi trường ảo?
  • Bạn đã sẵn sàng chạy mã ngay bây giờ trên các hệ thống Windows, macOS hoặc Linux của mình chưa?

Vậy thì hãy tham gia PyImageSearch Plus ngay hôm nay

Có quyền truy cập Jupyter Notebooks cho hướng dẫn này và các hướng dẫn khác của PyImageSearch được định cấu hình sẵn để chạy trên hệ sinh thái của Google Colab ngay trong trình duyệt web của bạn. Không cần cài đặt

Và trên hết, những Notebook Jupyter này sẽ chạy trên Windows, macOS và Linux

Cấu trúc dự án

Hãy xem lại cấu trúc dự án của chúng tôi. Lấy mã nguồn từ phần "Tải xuống", giải nén nội dung và điều hướng đến nơi bạn đã lưu nó

$ pip install opencv-contrib-python
0

Dự án của chúng tôi chứa một tập lệnh Python duy nhất có tên là

$ pip install opencv-contrib-python
3 và một vài hình ảnh thử nghiệm

Trong tập lệnh của chúng tôi, trước tiên chúng tôi sẽ tải một hình ảnh từ đĩa bằng chức năng OpenCV

image = cv2.imread["path/to/image.png"]
8 và sau đó hiển thị nó trên màn hình để đánh giá. Cuối cùng, chúng tôi sẽ lưu hình ảnh được hiển thị trở lại đĩa bằng OpenCV dưới dạng tệp mới có tên
$ pip install opencv-contrib-python
06

Bây giờ hãy triển khai tập lệnh Python tải hình ảnh của chúng ta bằng OpenCV

Triển khai tập lệnh tải hình ảnh OpenCV của chúng tôi

Hãy bắt đầu tìm hiểu cách tải hình ảnh đầu vào từ đĩa bằng OpenCV

Tạo tập lệnh Python có tên

$ pip install opencv-contrib-python
07 và chèn đoạn mã sau

$ pip install opencv-contrib-python
0

Bắt đầu bằng cách nhập gói tiện ích Python

$ pip install opencv-contrib-python
08 để phân tích đối số dòng lệnh trên Dòng 2 và thư viện OpenCV trên Dòng 3

Lưu ý rằng các nhà phát triển OpenCV đã sử dụng tên

$ pip install opencv-contrib-python
09 từ phiên bản 2. 0 của thư viện và giữ nguyên quy ước đặt tên này bất kể chúng tôi đang sử dụng bản phát hành nào [e. g. , 3. x, 4. x]. Chúng tôi sẽ sử dụng phiên bản mới nhất 4. 3+ đã cài đặt như chi tiết ở phần trước

Gói

$ pip install opencv-contrib-python
08 cho phép chúng tôi chuyển các đối số động cho tập lệnh Python của mình để chúng tôi không phải mã hóa các biến tham số cần được thay đổi thủ công mỗi khi chúng tôi muốn thay đổi giá trị của chúng

Nếu bạn không quen với cách thức hoạt động của gói

$ pip install opencv-contrib-python
08, hãy nhớ đọc hướng dẫn của tôi về chủ đề này

Các dòng 6-9 thiết lập trình phân tích cú pháp đối số dòng lệnh của chúng tôi với một đối số duy nhất chứa đường dẫn đến đầu vào của chúng tôi

$ pip install opencv-contrib-python
02. Chúng tôi đặt đối số theo yêu cầu, đảm bảo rằng một giá trị phải luôn được chuyển khi gọi tập lệnh Python của chúng tôi

Với đường dẫn

$ pip install opencv-contrib-python
02 đầu vào của chúng tôi được xác định động, giờ đây thật dễ dàng để tải hình ảnh bằng OpenCV

$ pip install opencv-contrib-python
7

OpenCV làm cho việc đọc nhiều loại tệp hình ảnh từ đĩa trở nên dễ dàng với chức năng

image = cv2.imread["path/to/image.png"]
8

Chúng tôi tải đầu vào

$ pip install opencv-contrib-python
0 vào bộ nhớ trên Dòng 13 bằng cách sử dụng
$ pip install opencv-contrib-python
0, trả về
$ pip install opencv-contrib-python
07 dưới dạng mảng NumPy. Sau khi thành công, chúng tôi thu được kích thước hình ảnh
$ pip install opencv-contrib-python
08 từ hình dạng của mảng [Dòng 14] — Tôi sẽ cung cấp thêm thông tin về các lưu ý liên quan đến dòng mã này sau

Bây giờ chúng ta có thể in kích thước hình ảnh [chiều rộng, chiều cao và số kênh] tới thiết bị đầu cuối để xem xét [Dòng 18-20]

Trong một bài đăng trên blog trong tương lai, chúng ta sẽ nói về kênh hình ảnh là gì, nhưng hiện tại, hãy nhớ rằng số lượng kênh sẽ là ba đối với hình ảnh màu, đại diện cho các thành phần Đỏ, Xanh lục và Xanh lam [RGB] của màu pixel

Nhưng này, có ích lợi gì khi có một hình ảnh trong bộ nhớ nếu chúng ta không biết liệu nó có được OpenCV đọc chính xác hay không?

$ pip install opencv-contrib-python
3

Hàm

$ pip install opencv-contrib-python
09 OpenCV ở đây rất thuận tiện, vì nó hiển thị một hình ảnh trên màn hình của chúng ta chỉ bằng hai tham số [Dòng 23]. Đầu tiên là một chuỗi đại diện cho tên được gán cho cửa sổ sẽ được mở để giữ hình;

Từ đó, chúng ta cần gọi hàm

$ pip install opencv-contrib-python
71 để giữ cửa sổ mở cho đến khi nhấn phím [Dòng 24]. Hàm này nhận một tham số duy nhất tương ứng với độ trễ thời gian [tính bằng mili giây] được sử dụng để giữ cho cửa sổ hoạt động nếu không có phím nào được nhấn. Giá trị tham số
$ pip install opencv-contrib-python
72 hướng dẫn hàm
$ pip install opencv-contrib-python
73 chờ vô thời hạn

Cuối cùng, Dòng 28 lưu lại

$ pip install opencv-contrib-python
07 vào đĩa. Hàm OpenCV
$ pip install opencv-contrib-python
75 chấp nhận tên tệp làm tham số đầu tiên và
$ pip install opencv-contrib-python
07 làm tham số thứ hai

Hàm

$ pip install opencv-contrib-python
75 lưu tệp có tên
$ pip install opencv-contrib-python
78 . the
$ pip install opencv-contrib-python
07 to JPG format based on the filename extension.

Bây giờ bạn có thể áp dụng OpenCV cho

  1. Tải một hình ảnh từ đĩa
  2. Hiển thị nó trên màn hình
  3. Ghi lại vào đĩa

Chúng tôi sẽ xem xét một số kết quả của các hoạt động đó trong phần tiếp theo

Kết quả tải hình ảnh OpenCV

Bây giờ là lúc tải hình ảnh từ đĩa bằng OpenCV

Bắt đầu bằng cách truy cập phần “Tải xuống” của hướng dẫn này để truy xuất mã nguồn và hình ảnh ví dụ

Từ đó, mở một thiết bị đầu cuối và thực hiện lệnh sau

$ pip install opencv-contrib-python
5

Hình 3. Đang tải hình ảnh từ đĩa bằng OpenCV và
$ pip install opencv-contrib-python
0

Vào sinh nhật lần thứ 30 của tôi cách đây vài năm, vợ tôi đã thuê một chiếc xe jeep gần như bản sao của Công viên kỷ Jura [bộ phim yêu thích của tôi] để chúng tôi lái đi chơi cả ngày

Trong Hình 3, bạn có thể thấy rằng hình ảnh đầu vào của chúng tôi,

$ pip install opencv-contrib-python
31, đã được tải từ đĩa bằng OpenCV và sau đó được hiển thị trên màn hình của bạn

Hình ảnh này có chiều rộng 720 pixel, chiều cao 764 pixel và ba kênh [một kênh tương ứng cho mỗi kênh Đỏ, Xanh lục và Xanh lam]

Ngoài ra, nếu bạn kiểm tra nội dung của thư mục dự án của chúng tôi sau khi chạy tập lệnh, bạn sẽ thấy một tệp có tên

$ pip install opencv-contrib-python
06

$ pip install opencv-contrib-python
9

Hình ảnh này đã được lưu vào đĩa qua OpenCV bằng chức năng

$ pip install opencv-contrib-python
75

Lưu ý rằng mặc dù hình ảnh

$ pip install opencv-contrib-python
1 là loại tệp PNG, OpenCV đã tự động chuyển đổi hình ảnh thành loại tệp JPG cho chúng tôi

Hãy thử một hình ảnh khác

$ pip install opencv-contrib-python
2

hinh 4. Tải hình ảnh OpenCV với
$ pip install opencv-contrib-python
0

Tiếp tục với chủ đề Công viên kỷ Jura trong hướng dẫn này, ở đây chúng ta có một bức ảnh của Ray Arnold [do Samuel L. Jackson]

Hình ảnh này có chiều rộng 577 pixel, chiều cao 433 pixel và ba kênh

Nếu bạn là người mới sử dụng OpenCV, tôi khuyên bạn nên dành thời gian để tìm hiểu về hàm

$ pip install opencv-contrib-python
0. Cụ thể, thử nghiệm với

  • Đang tải hình ảnh của riêng bạn qua
    $ pip install opencv-contrib-python
    0
  • Thử các loại tệp hình ảnh khác nhau và lưu ý những loại tệp OpenCV hỗ trợ/không hỗ trợ
  • Cố ý chuyển các đường dẫn tệp không chính xác tới
    $ pip install opencv-contrib-python
    0 [i. e. , giá trị của
    $ pip install opencv-contrib-python
    0 trả về nếu đường dẫn hình ảnh đầu vào hợp lệ]

Nói về mục đạn cuối cùng đó, hãy thử ngay bây giờ…

Điều gì xảy ra nếu chúng tôi chuyển một đường dẫn hình ảnh không hợp lệ tới “cv2. imread”?

Bạn có thể thắc mắc điều gì sẽ xảy ra nếu chúng ta chuyển một đường dẫn tệp không hợp lệ [có nghĩa là đường dẫn đến hình ảnh đầu vào không tồn tại trên đĩa] tới OpenCV và

image = cv2.imread["path/to/image.png"]
8?

Hãy cùng tìm hiểu

$ pip install opencv-contrib-python
9

Ở đây tôi cố tình cung cấp một đường dẫn hình ảnh không tồn tại trên đĩa của tôi

Khi tôi chuyển một đường dẫn hình ảnh không hợp lệ tới hàm

$ pip install opencv-contrib-python
0 của OpenCV,
$ pip install opencv-contrib-python
0 trả về
$ pip install opencv-contrib-python
02

Và khi tôi cố gắng lấy chiều rộng, chiều cao và số lượng kênh của hình ảnh, Python đã báo lỗi với

$ pip install opencv-contrib-python
54, nói rằng đối tượng
$ pip install opencv-contrib-python
00 không có thuộc tính
$ pip install opencv-contrib-python
56

Lỗi này có ý nghĩa khi bạn nghĩ về nó

  1. Nếu bạn cung cấp đường dẫn hình ảnh không hợp lệ cho
    $ pip install opencv-contrib-python
    0, hàm sẽ trả về
    $ pip install opencv-contrib-python
    02
  2. Tuy nhiên, mã của chúng tôi giả sử đường dẫn hình ảnh là chính xác và do đó trả về một mảng NumPy
  3. Nhưng nếu
    $ pip install opencv-contrib-python
    59 được trả về là
    $ pip install opencv-contrib-python
    02, thì đó không phải là một mảng NumPy hợp lệ, do đó xảy ra lỗi

Bất cứ khi nào bạn thấy các lỗi

$ pip install opencv-contrib-python
02 hoặc
$ pip install opencv-contrib-python
00 này, bước đầu tiên của bạn trong việc chẩn đoán và giải quyết chúng là điều tra xem hình ảnh của bạn có được đọc thành công từ đĩa một cách chính xác hay không. 99% trường hợp lỗi là do mã của bạn giả sử hình ảnh hợp lệ, nhưng trên thực tế, hình ảnh không được đọc chính xác từ đĩa

Cái gì tiếp theo?

Thông tin khóa học.
Tổng cộng hơn 60 lớp • Hơn 64 giờ video hướng dẫn mã theo yêu cầu • Cập nhật lần cuối. Tháng 12 năm 2022
★★★★★ 4. 84 [128 Xếp hạng] • Hơn 15.800 Học sinh Ghi danh

Tôi thực sự tin rằng nếu bạn có đúng giáo viên, bạn có thể thành thạo thị giác máy tính và học sâu

Bạn có nghĩ rằng việc học thị giác máy tính và học sâu tốn nhiều thời gian, quá sức và phức tạp không?

Đó không phải là trường hợp

Tất cả những gì bạn cần để thành thạo thị giác máy tính và học sâu là nhờ ai đó giải thích mọi thứ cho bạn bằng các thuật ngữ đơn giản, trực quan. Và đó chính xác là những gì tôi làm. Nhiệm vụ của tôi là thay đổi giáo dục và cách dạy các chủ đề Trí tuệ nhân tạo phức tạp

Nếu bạn nghiêm túc về việc học thị giác máy tính, điểm dừng chân tiếp theo của bạn phải là Đại học PyImageSearch, khóa học trực tuyến về thị giác máy tính, học sâu và OpenCV toàn diện nhất hiện nay. Tại đây, bạn sẽ học cách áp dụng thành công và tự tin tầm nhìn máy tính vào công việc, nghiên cứu và dự án của mình. Tham gia cùng tôi trong việc làm chủ thị giác máy tính

Bên trong Đại học PyImageSearch, bạn sẽ tìm thấy

  • ✓ Hơn 60 khóa học về chủ đề thị giác máy tính thiết yếu, học sâu và OpenCV
  • ✓ Hơn 60 Chứng chỉ Hoàn thành
  • ✓ Hơn 64 giờ video theo yêu cầu
  • ✓ Các khóa học hoàn toàn mới được phát hành thường xuyên, đảm bảo bạn có thể theo kịp các kỹ thuật tiên tiến nhất
  • ✓ Máy tính xách tay Jupyter được định cấu hình sẵn trong Google Colab
  • ✓ Chạy tất cả các mẫu mã trong trình duyệt web của bạn — hoạt động trên Windows, macOS và Linux [không yêu cầu cấu hình môi trường nhà phát triển. ]
  • ✓ Truy cập kho lưu trữ mã tập trung cho tất cả hơn 500 hướng dẫn trên PyImageSearch
  • ✓ Dễ dàng tải xuống bằng một cú nhấp chuột đối với mã, bộ dữ liệu, mô hình được đào tạo trước, v.v.
  • ✓ Truy cập trên thiết bị di động, máy tính xách tay, máy tính để bàn, v.v.

Nhấn vào đây để tham gia Đại học PyImageSearch

Bản tóm tắt

Trong hướng dẫn này, bạn đã học cách tải hình ảnh bằng OpenCV và hàm

$ pip install opencv-contrib-python
0

Chúng tôi đã tạo một tập lệnh Python để

  1. Tải hình ảnh từ đĩa dưới dạng mảng NumPy bằng hàm
    image = cv2.imread["path/to/image.png"]
    8
  2. Hiển thị hình ảnh trên màn hình với
    $ pip install opencv-contrib-python
    95
  3. Lưu hình ảnh trở lại đĩa với
    $ pip install opencv-contrib-python
    96

OpenCV xử lý thuận tiện việc đọc và ghi nhiều định dạng tệp hình ảnh [e. g. , JPG, PNG, TIFF]. Thư viện cũng đơn giản hóa việc hiển thị hình ảnh trên màn hình và cho phép người dùng tương tác với cửa sổ đã mở

Nếu OpenCV không thể đọc một hình ảnh, bạn nên kiểm tra cẩn thận xem tên tệp đầu vào đã được cung cấp chính xác hay chưa, vì hàm

$ pip install opencv-contrib-python
0 trả về một đối tượng Python
$ pip install opencv-contrib-python
4 khi lỗi. Chức năng sẽ thất bại nếu tệp không tồn tại hoặc nếu định dạng hình ảnh không được OpenCV hỗ trợ

Chúng tôi cũng đã in kích thước hình ảnh tới thiết bị đầu cuối [chiều rộng, chiều cao và số lượng kênh], dựa trên các giá trị của hình dạng mảng NumPy bên dưới. Sau đó, tập lệnh của chúng tôi đã lưu hình ảnh vào đĩa bằng định dạng JPG, tận dụng khả năng của OpenCV để tự động chuyển đổi hình ảnh sang loại tệp mong muốn

Trong hướng dẫn tiếp theo của loạt bài này, bạn sẽ tìm hiểu về các khái niệm cơ bản về ảnh OpenCV, bao gồm pixel là gì, tổng quan về hệ tọa độ ảnh và cách truy cập các giá trị pixel riêng lẻ

Để tải mã nguồn về bài đăng này [và được thông báo khi các hướng dẫn trong tương lai được xuất bản tại đây trên PyImageSearch], chỉ cần nhập địa chỉ email của bạn vào biểu mẫu bên dưới

Tải xuống Mã nguồn và Hướng dẫn tài nguyên 17 trang MIỄN PHÍ

Nhập địa chỉ email của bạn dưới đây để có được một. zip của mã và Hướng dẫn tài nguyên 17 trang MIỄN PHÍ về Thị giác máy tính, OpenCV và Học sâu. Bên trong, bạn sẽ tìm thấy các hướng dẫn, sách, khóa học và thư viện được chọn lọc thủ công của tôi để giúp bạn thành thạo CV và DL

Chủ Đề