numpy - 随机像素?(矩阵,Numpy)
问题描述
我正在试验 numpy,我想为以下代码寻求解决方案。实际上,我想从使用随机 rgb 模式开始生成 256x256 图像——这可能是要走的路。欢迎任何 numpy 的见解!
# -*- coding: utf-8 -*-
from PIL import Image
import numpy as np
def transform_matrice(data):
aux_data = []
for e in data:
aux = []
for a in e:
aux.append(np.array([[random.randrange(255), random.randrange(255), random.randrange(255)]]))
aux_data.append(aux)
return aux_data
w, h = 250, 250
data = np.zeros((h, w, 3), dtype=np.uint8)
ret = transform_matrice(data)
img = Image.fromarray(ret, 'RGB')
img.save('eg.png')
img.show()
使用此代码,我收到以下错误:
AttributeError: 'list' object has no attribute '__array_interface__'
解决方案
您不需要创建一个空data
表,也不需要使用for
循环,numpy 可以为您完成!
np.random.randint
将使用以下命令为您创建一个大小为 (w,h,3) 的 3D 矩阵,其中整数从 0 到 255:
def transform_matrice(w,h):
return np.random.randint(0,256,size=(w,h,3)).astype('uint8')
ret = transform_matrice(250,250)
没有,我将 256 而不是 255 作为第二个参数,因为该参数比您想要的最大整数高一
推荐阅读
- azure-devops - 授权我的 Angular 应用程序中的用户访问 Azure DevOps REST API 服务
- python-3.x - 使用openCV打开网络摄像头并每五秒用它拍照
- capybara - Rails Minitest / Capybara - 为 JS 界面元素添加系统集成测试
- airflow - 应该如何在 Airflow 挂钩中处理类似 REST 的 API 错误?
- python - 美丽的汤 - 获取所有元素
- r - 如何在弹出窗口打开时保持背景元素可用
- swift - 可以简化此 Swift 代码以删除空协议和空类吗?
- css - 更改 Django 用户表单的标签颜色
- protractor - 如果测试被跳过/挂起,量角器会以 retcode 1 退出
- python - ... 在 Python 代码中是什么意思?