使用numpy在1000*1000的图像中随机生成大小不同的不规则图形
时间: 2023-07-16 21:13:25 浏览: 59
下面是一个使用numpy和matplotlib库生成大小不同的不规则图形的示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 创建一个1000x1000的全零数组
img = np.zeros((1000, 1000))
# 生成10个大小不同的不规则图形
for i in range(10):
# 随机生成图形的中心坐标和半径
center = np.random.randint(100, 900, size=2)
radius = np.random.randint(50, 200)
# 生成一个大小为1000x1000的网格
x, y = np.meshgrid(np.arange(1000), np.arange(1000))
# 计算网格点到图形中心的距离
dist = np.sqrt((x - center[0]) ** 2 + (y - center[1]) ** 2)
# 将距离小于半径的网格点的值设为1
img[dist < radius] = 1
# 显示生成的图像
plt.imshow(img, cmap='gray')
plt.show()
```
这段代码生成了10个随机大小的不规则图形,并将它们叠加到一个1000x1000的全零数组中。最后使用matplotlib库将结果可视化出来。你可以根据自己的需求调整图形数量、大小和位置等参数。
相关问题
使用numpy.random.randn生成随机噪声图像
可以使用以下代码使用numpy.random.randn()生成随机噪声图像:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成随机噪声图像
random_image = np.random.randn(256, 256)
# 显示图像
plt.imshow(random_image, cmap='gray')
plt.axis('off')
plt.show()
```
这个代码将生成一个大小为256x256的随机噪声图像,并使用灰度色彩映射显示图像。你可以使用不同的参数来生成不同大小的图像。
在numpy数组中生成不规则形状的1值
可以使用NumPy的索引技巧和布尔掩码来生成不规则形状的1值数组,例如:
```python
import numpy as np
# 创建一个4x4的零数组
arr = np.zeros((4, 4))
# 设置不规则形状的1值
arr[[0, 1], [1, 2]] = 1
arr[2:, 3] = 1
print(arr)
```
输出结果为:
```
[[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]
[0. 0. 0. 1.]]
```
在上面的例子中,我们使用索引 `[0, 1]` 和 `[1, 2]` 来设置第一行和第二行的 `(1, 2)` 和 `(2, 3)` 位置为1。然后,我们使用切片 `2:` 和索引 `3` 来设置第三行和第四行的 `(3, 4)` 位置为1。