FD ** - Tôi là một newb Python cũng như một ngăn xếp tràn newb như bạn có thể nói. Tôi đã chỉnh sửa câu hỏi dựa trên nhận xét.mảng np là không thay đổi - "đích chuyển nhượng là chỉ đọc"
Mục tiêu của tôi là đọc một tập hợp các tệp PNG, tạo (các) hình ảnh với Image.open ('tên tệp') và chuyển đổi chúng thành các mảng 2D đơn giản chỉ với 1 và 0. PNG có định dạng RGBA với hầu hết chỉ 255 và 0 làm giá trị. Khá thường xuyên trong các hình ảnh, các cạnh là các giá trị thang màu xám, mà tôi muốn tránh trong mảng 2D.
Tôi đã tạo mảng 2D từ hình ảnh bằng cách sử dụng np.asarray (Hình ảnh) chỉ nhận được kênh 'Đỏ'. Trong mỗi mảng hình ảnh 2d, tôi muốn đặt giá trị ô = 1 nếu giá trị hiện tại không bằng 0.
Vì vậy, tôi vòng vào mảng 2ngày và tôi kiểm tra giá trị di động và cố gắng đặt nó là 1.
Nó mang lại cho tôi một lỗi chỉ ra rằng mảng là chỉ đọc. Tôi đọc qua một số chủ đề tràn ngăn xếp thảo luận rằng mảng np là không thay đổi và nó vẫn còn một chút không rõ ràng. Tôi sử dụng PIL và numpy
Cảm ơn @ user2314737. Tôi sẽ cố gắng thiết lập lá cờ đó. @Eric, cảm ơn nhận xét của bạn.
from PIL import Image
import numpy as np
Mã liên quan:
prArray = [np.asarray(img)[:, :, 0] for img in problem_images]
for img in prArray:
for x in range(184):
for y in range(184):
if img[x][y] != 0:
img[x][y] = 1
Các lỗi "điểm đến nhiệm vụ được read-only" là trong dòng cuối cùng.
Cảm ơn mọi người đã trợ giúp.
có rất nhiều liên kết web http://stackoverflow.com/questions/13572448/change -giá trị-trong-một-numpy-mảng cho thấy ít nhất hai – NaN
Trường hợp đã 'img' đến từ, và tại sao bạn cần' asarray'? – Eric
Toàn bộ đoạn mã này có thể được viết tốt hơn 'prArray = prArray! = 0' – Eric