Làm cách nào để đọc tệp img trong Python?

Bây giờ, trước khi đọc toàn bộ hướng dẫn này, tôi muốn các bạn trả lời câu hỏi này trong phần bình luận, theo cách đó bạn có thể giao việc cho bộ não của mình. Dù sao, đối với những bạn chưa bao giờ trả lời câu hỏi hoặc không biết câu trả lời, bằng cách đọc bài viết này, cuối cùng bạn có thể trả lời câu hỏi mà không do dự. Đủ sự cường điệu này, hãy bắt đầu. Nhân tiện, toàn bộ mã cho hướng dẫn này cũng có thể được tìm thấy trên Kho lưu trữ GitHub của tôi bên dưới

Tanu-N-Prabhu/Trăn

Permalink Dismiss GitHub là nơi có hơn 50 triệu nhà phát triển làm việc cùng nhau để lưu trữ và xem xét mã, quản lý…

github. com

Câu chuyện

Ảnh của Pixabay từ Pexels

Tôi đã được giao một bài tập trong Lớp xử lý hình ảnh [Cao học], trong đó tôi phải đọc một hình ảnh thô từ một tệp, thay đổi kích thước hình ảnh đó thành các kích thước được chỉ định bằng thuật toán lấy mẫu lại điểm đơn và lấy mẫu lại trung bình có trọng số. Có một ghi chú được gửi cho tôi nói rằng "Không sử dụng bất kỳ thư viện bên ngoài nào" cho các chương trình của bạn, đặc biệt là để đọc và lưu hình ảnh. Chỉ các thuật toán được chọn mới được phép sử dụng một thuật toán như vậy trong python là

# For example a particular image in this case would contain [512*512] rows and columns meaning 262,144 pixels
ROWS = 512
COLS = 512
# Different images have different dimensions. Change it accordingly
0. Điều này rất đau đớn khi nghe, nhưng dù sao thì tôi cũng phải làm và tôi đã làm được. Trong hướng dẫn này, chúng tôi sẽ chỉ tập trung vào đọc và lưu hình ảnh và không có gì lạ mắt

Câu hỏi

Viết chương trình đọc một hình ảnh thang độ xám ở định dạng thô từ một tệp và lưu hình ảnh mới vào một tệp mới ở định dạng thô. [Tôi chỉ đặt câu hỏi ngắn gọn vì đây là nội dung bạn sẽ học hôm nay]

Nguồn hình ảnh

Dưới đây là nguồn cho hình ảnh 8 bit thang độ xám. Tôi sẽ sử dụng hình ảnh mẫu thứ 4 “Barbara, 8 bit grey [512 x 512]. thô”. Liên kết cho các hình ảnh mẫu khác có thể được tìm thấy ở đây

Sử dụng thư viện

Như tôi đã nói, tôi sẽ không sử dụng bất kỳ thư viện đặc biệt nào của python. Một số thư viện xu hướng và được sử dụng rộng rãi nhất trong lĩnh vực Xử lý ảnh là

  1. Nặng nề
  2. OpenCV
  3. PIL
  4. Matplotlib

Phần thú vị ở đây là chỉ bằng cách sử dụng các thư viện OpenCV, PIL và Matplotlib, chúng ta có thể đọc và lưu hình ảnh vào một tệp chỉ trong hai dòng mã. Nhưng vấn đề ở đây là không sử dụng các thư viện đặc biệt và các phương thức đặc biệt. Numpy là thư viện tiêu chuẩn duy nhất sẽ được sử dụng xuyên suốt [bạn sẽ biết tại sao]

Mã số

Khoảnh khắc mà tất cả các bạn đã chờ đợi

Nhập thư viện

Lý do duy nhất mà thư viện

# For example a particular image in this case would contain [512*512] rows and columns meaning 262,144 pixels
ROWS = 512
COLS = 512
# Different images have different dimensions. Change it accordingly
0 được sử dụng là để chuyển đổi hình ảnh thô thành một mảng pixel. Chủ yếu được sử dụng để lưu trữ các giá trị trong một mảng

# Necessary library used for this tutorial
import numpy as np

Khởi tạo giá trị hàng và cột cho hình ảnh

Kích thước của hình ảnh được tạo thành từ các hàng và cột

# For example a particular image in this case would contain [512*512] rows and columns meaning 262,144 pixels
ROWS = 512
COLS = 512
# Different images have different dimensions. Change it accordingly

Mở tệp hình ảnh đầu vào [định dạng RAW]

# Opening the input image [RAW]
fin = open['barbara_gray.raw']
print[fin]

Điều này sẽ nhắc đầu ra là

Bây giờ, chúng ta cần xây dựng một mảng 2D từ dữ liệu thô [hình ảnh]. Phải sử dụng một cách hiệu quả cao để đọc dữ liệu nhị phân với kiểu dữ liệu đã biết, điều này có thể được thực hiện với sự trợ giúp của thư viện

# For example a particular image in this case would contain [512*512] rows and columns meaning 262,144 pixels
ROWS = 512
COLS = 512
# Different images have different dimensions. Change it accordingly
0

Đang tải hình ảnh đầu vào

Đây là nơi niềm vui thực sự bắt đầu. Cảm ơn

# For example a particular image in this case would contain [512*512] rows and columns meaning 262,144 pixels
ROWS = 512
COLS = 512
# Different images have different dimensions. Change it accordingly
0

________số 8_______

Khi thực hiện điều này, bạn sẽ nhận được

.. Load input image 
Dimension of the old image array: 1
Size of the old image array: 262144

Chuyển đổi từ mảng 1D sang mảng 2D

Có một cách để chúng ta có thể chuyển mảng 1D sang mảng 2D chẳng hạn như chia sàn tổng số pixel với hàng và cột của ảnh hoặc cột và cột [cũng được]. Điều này có thể được viết với sự giúp đỡ của một công thức

# For example a particular image in this case would contain [512*512] rows and columns meaning 262,144 pixels
ROWS = 512
COLS = 512
# Different images have different dimensions. Change it accordingly
4

tp = tổng số pixel; . Lý do chúng tôi sử dụng phép chia sàn thay vì phép chia vì chúng tôi cần làm tròn các giá trị dưới dạng số nguyên

# Conversion from 1D to 2D array
img.shape = [img.size // COLS, COLS]
print["New dimension of the array:", img.ndim]
print["----------------------------------------------------"]
print[" The 2D array of the original image is: \n", img]
print["----------------------------------------------------"]
print["The shape of the original image array is: ", img.shape]

Khi thực hiện điều này, bạn sẽ nhận được

New dimension of the array: 2 
----------------------------------------------------
The 2D array of the original image is:
[[240 240 240 .. 230 230 230]
[240 240 239 .. 230 229 229]
[240 239 238 .. 231 232 232]
..
[ 50 50 50 .. 50 50 50]
[ 50 50 50 .. 50 50 50]
[ 50 50 50 .. 50 50 50]]

----------------------------------------------------
The shape of the original image array is: [1000, 1600]

Lưu hình ảnh mới vào một tệp mới ở định dạng thô

# Save the output image
print[".. Save the output image"]
img.astype['int8'].tofile['NewImage.raw']
print[".. File successfully saved"]
# Closing the file
fin.close[]

Đây là cách bạn lưu hình ảnh mới ở định dạng thô. Điều này sẽ được lưu trong hệ thống cục bộ của bạn

.. Save the output image 
.. File successfully saved

Ghi chú. Trong khi nhập các hàng và cột của hình ảnh. Ví dụ: nếu độ phân giải của hình ảnh là 1600x1000, thì điều đó có nghĩa là chiều rộng là 1600 và chiều cao là 1000. Tương tự như trong chương trình trên, các hàng sẽ là 1000 và các cột sẽ là 1600

đầu ra

Khi thực hiện thành công đoạn mã trên, bây giờ bạn có thể đọc hình ảnh thô và sau đó lưu hình ảnh thô. vâng. Bây giờ nếu bạn không tin tôi, bạn có thể mở hình ảnh đã lưu bằng một số công cụ mở hình ảnh trực tuyến [hoặc bất kỳ công cụ nào]. Tôi thường sử dụng photopea, và đây là những gì tôi nhận được

Ảnh của Tanu Nanda Prabhu

Xin lưu ý, ở trên là ảnh chụp màn hình của đầu ra cùng với công cụ, hình ảnh đầu ra chính là thang độ xám có tên là “Barbara” [một người phụ nữ giơ một tay lên hoặc bất cứ thứ gì]

Phần kết luận

Trước khi rời đi, hãy thử đọc ảnh với các định dạng khác như JPEG [JPG], PNG và xem bạn nhận được giá trị nào. Ngoài ra, hãy thử đọc một hình ảnh màu [RGB]. Dù sao, bây giờ bạn có thể dễ dàng trả lời câu hỏi trên khi bắt đầu hướng dẫn. Để tôi nhắc bạn lần nữa. “Hình ảnh được tạo thành từ cái gì?”. Câu trả lời như các bạn đã thấy, “Hình ảnh được tạo thành từ một mảng các giá trị pixel”. Số lượng giá trị phụ thuộc vào các hàng và cột của hình ảnh đã cho

Đó là tất cả cho ngày hôm nay, tôi hy vọng các bạn thích đọc hướng dẫn “Đọc một hình ảnh bằng Python [Không sử dụng các thư viện đặc biệt]”. Như đã hứa, tôi không sử dụng bất kỳ thư viện nào khác ngoài

# For example a particular image in this case would contain [512*512] rows and columns meaning 262,144 pixels
ROWS = 512
COLS = 512
# Different images have different dimensions. Change it accordingly
0. Chà, duh. bạn cần sử dụng
# For example a particular image in this case would contain [512*512] rows and columns meaning 262,144 pixels
ROWS = 512
COLS = 512
# Different images have different dimensions. Change it accordingly
0 để xử lý mảng. Nếu các bạn có bất kỳ nhận xét hoặc thắc mắc nào về hướng dẫn, hãy cho tôi biết trong phần bình luận bên dưới. Cho đến lúc đó tạm biệt, giữ an toàn. ]

Làm cách nào để đọc dữ liệu từ hình ảnh bằng Python?

Thư viện Python . Tức là nó sẽ nhận dạng và “đọc” chữ nhúng trong hình ảnh. Python-tesseract là một trình bao bọc cho Công cụ Tesseract-OCR của Google. Python-tesseract is an optical character recognition [OCR] tool for python. That is, it will recognize and “read” the text embedded in images. Python-tesseract is a wrapper for Google's Tesseract-OCR Engine.

Chúng ta có thể đọc hình ảnh bằng Python không?

Sử dụng ImageIO. Imageio là thư viện Python cung cấp giao diện dễ đọc và ghi nhiều loại dữ liệu hình ảnh , bao gồm hình ảnh động, video, dữ liệu thể tích và dữ liệu khoa học . Nó là đa nền tảng, chạy trên Python 3. 7+ và rất dễ cài đặt.

Làm cách nào để đọc tên hình ảnh trong Python?

Các hàm mô-đun hình ảnh trong Python . Nếu hình ảnh không được mở bằng hàm 'open[]', nó sẽ trả về chuỗi null. Hình ảnh. định dạng – Chức năng này được sử dụng để lấy định dạng tệp của hình ảnh như JPEG/JPG, PNG, GIF, v.v. filename – This function is used to get the file name or the path of the image. If the image is not opened using 'open[]' function it returns the null string. Image. format – This function is used to get the file format of the image like JPEG/JPG, PNG, GIF, etc.

Chủ Đề