jupyte中创建一个窗口,可以使用鼠标手写数字,且窗口带有清楚按钮,且窗口可以显示灰度图的代码
时间: 2024-10-29 10:16:48 浏览: 17
3层神经网络实现手写数字识别(代码+数据 jupyter直接运行看结果)
5星 · 资源好评率100%
在Jupyter Notebook中创建一个交互式的窗口,可以使用IPython widgets库,特别是` interact_manual` 函数,配合图像处理库如`matplotlib`和一些基本用户输入模块。这里是一个简单的示例,展示如何创建一个手写数字输入并显示灰度图像的窗口,并包含清除按钮:
```python
import matplotlib.pyplot as plt
from IPython.display import display
from ipywidgets import interact_manual, Button
def draw_and_clear(image):
# 清除当前图像
plt.clf()
# 显示灰度图像
plt.imshow(image, cmap='gray')
plt.title('Click to Draw a Number (Clear with button)')
# 创建一个用于绘图的图形区域
canvas = plt.gcf().canvas
fig_manager = plt.get_current_fig_manager()
# 添加一个清空图像的按钮
clear_button = Button(description="Clear")
def on_click_clear(b):
image[:] = 0
canvas.draw_idle() # 更新图像
clear_button.on_click(on_click_clear)
# 使用鼠标点击绘制数字
@interact_manual(x=(0, 8), y=(0, 8), value=int)
def on_draw(x, y, value):
image[y, x] = value
canvas.draw_idle() # 更新图像
# 初始化一个全零的图像
image = np.zeros((9, 9))
# 开始交互式绘图
draw_and_clear(image)
```
这个代码首先初始化一个全零的二维数组`image`作为画布,然后创建了一个交互式的绘图环境。你可以通过点击和拖动鼠标选择像素值,每次点击都会更新图像并在需要时触发清除操作。
注意:这个例子假设你已经导入了numpy (`import numpy as np`),并且是在支持IPython交互的环境中运行。
阅读全文