Tôi đã tải một hình ảnh vào một mảng numpy bằng cách sử dụng mahotas.matplotlib 3D scatterplot với điểm đánh dấu màu tương ứng với giá trị RGB
import mahotas
img = mahotas.imread('test.jpg')
Mỗi pixel trong img
được biểu diễn bởi một mảng các giá trị RGB:
img[1,1] = [254, 200, 189]
Tôi đã thực hiện một phân tán 3D của các giá trị R trên một trục, giá trị G trên trục và B giá trị thứ 2 trên trục thứ ba. Đây không phải là vấn đề:
fig = plt.figure()
ax = fig.add_subplot(111, projection = '3d')
for i in range(1,img.shape[1]+1):
xs = img[i,1][0]
ys = img[i,1][1]
zs = img[i,1][2]
ax.scatter(xs, ys, zs, c='0.5', marker='o')
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
plt.show()
(Tôi chỉ vẽ sơ đồ cột đầu tiên của hình ảnh trong thời gian này).
Làm cách nào để tô màu cho mỗi chấm phân tán theo màu của mỗi pixel hình ảnh? tức là tôi đoán tôi muốn tô màu các chấm theo giá trị RGB của chúng, nhưng tôi không chắc liệu điều này có khả thi không?