Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách xem giá trị pixel của hình ảnh bằng scikit-learn trong Python

Tiền xử lý dữ liệu là tác vụ thu thập tất cả dữ liệu (từ nhiều nguồn hoặc một nguồn) vào định dạng chung hoặc tập dữ liệu thống nhất. Vì dữ liệu thực tế không bao giờ lý tưởng, có thể có ô trống, lỗi, ngoại lai, chênh lệch cột, v.v. Hình ảnh có thể không căn chỉnh, không rõ, hoặc kích thước quá lớn. Mục tiêu tiền xử lý là loại bỏ sự chênh lệch và lỗi.

Để lấy pixel của hình ảnh, hàm built-in flatten được dùng. Sau khi đọc ảnh, giá trị pixel lưu dưới dạng DataFrame. Hàm flatten chuyển 3 chiều ảnh RGB thành 1 chiều và lấy giá trị pixel vào DataFrame.

Thay vì in toàn bộ DataFrame, in kích thước DataFrame. Ví dụ tải ảnh và lấy pixel dưới dạng DataFrame:

Ví dụ

from skimage import io
import pandas as pd

path = "path/to/puppy.PNG"
img = io.imread(path)
print("Đang đọc hình ảnh")
io.imshow(img)
print("Hình ảnh in trên console")

my_df = pd.DataFrame(img.flatten())
print("Kích thước pixel hình ảnh:")
print(my_df.shape)

Đầu ra

Đang đọc hình ảnh
Hình ảnh in trên console
Kích thước pixel hình ảnh: (886104, 1)

Cách xem giá trị pixel của hình ảnh bằng scikit-learn trong Python

Giải thích

  • Nhập thư viện cần thiết.
  • Định nghĩa đường dẫn lưu ảnh.
  • Dùng imread đọc ảnh từ đường dẫn.
  • Dùng imshow hiển thị ảnh trên console.
  • Dùng flatten chuyển 3 chiều RGB thành 1 chiều, lấy giá trị pixel vào DataFrame.
  • Thay vì in DataFrame (quá nhiều hàng), in kích thước DataFrame.
  • DataFrame có thể xem bằng print(my_df).
  • Đầu ra là DataFrame với giá trị pixel in trên console.

Lưu ý: Ví dụ dùng skimage.io (scikit-image), không phải scikit-learn. flatten() là phương thức NumPy array (img.flatten()), chuyển mảng 3D (H, W, C) thành 1D (H*W*C,). Ảnh RGB có 3 kênh, RGBA có 4 kênh.