python另存绘制的图
时间: 2023-10-11 18:12:00 浏览: 92
你可以使用Matplotlib库将绘制的图另存为图片文件。以下是一个例子:
```python
import matplotlib.pyplot as plt
# 绘制图形
x = [1, 2, 3, 4, 5]
y = [10, 8, 6, 4, 2]
plt.plot(x, y)
# 另存为图片文件
plt.savefig('myplot.png')
```
这个例子中,我们绘制了一个简单的折线图,并将它另存为名为“myplot.png”的PNG格式图片文件。你可以根据需要修改文件名和文件格式。
相关问题
Python tkinter 实现另存为图片
要在Python tkinter中实现另存为图片功能,可以使用Python Imaging Library(PIL)。
首先,导入必要的库:
```python
from tkinter import *
from tkinter import filedialog
from PIL import Image, ImageDraw
```
然后,创建一个画布并绘制一些形状:
```python
# 创建画布
canvas_width = 400
canvas_height = 400
canvas = Canvas(root, width=canvas_width, height=canvas_height, bg='white')
canvas.pack()
# 绘制一个圆形和一个矩形
canvas.create_oval(50, 50, 150, 150, fill='red')
canvas.create_rectangle(200, 200, 300, 300, fill='blue')
```
接下来,定义一个函数来保存画布中的内容为图片:
```python
def save_canvas():
# 获取画布截图
x = root.winfo_rootx() + canvas.winfo_x()
y = root.winfo_rooty() + canvas.winfo_y()
x1 = x + canvas.winfo_width()
y1 = y + canvas.winfo_height()
image = ImageGrab.grab((x, y, x1, y1))
# 弹出文件对话框,选择保存位置和文件名
file_path = filedialog.asksaveasfilename(defaultextension='.png')
if file_path:
image.save(file_path)
```
最后,创建一个按钮来触发保存函数:
```python
# 创建按钮
save_btn = Button(root, text='Save as Image', command=save_canvas)
save_btn.pack()
```
完整代码如下:
```python
from tkinter import *
from tkinter import filedialog
from PIL import Image, ImageDraw, ImageGrab
root = Tk()
root.title('Save Canvas as Image')
root.geometry('400x450')
# 创建画布
canvas_width = 400
canvas_height = 400
canvas = Canvas(root, width=canvas_width, height=canvas_height, bg='white')
canvas.pack()
# 绘制一个圆形和一个矩形
canvas.create_oval(50, 50, 150, 150, fill='red')
canvas.create_rectangle(200, 200, 300, 300, fill='blue')
def save_canvas():
# 获取画布截图
x = root.winfo_rootx() + canvas.winfo_x()
y = root.winfo_rooty() + canvas.winfo_y()
x1 = x + canvas.winfo_width()
y1 = y + canvas.winfo_height()
image = ImageGrab.grab((x, y, x1, y1))
# 弹出文件对话框,选择保存位置和文件名
file_path = filedialog.asksaveasfilename(defaultextension='.png')
if file_path:
image.save(file_path)
# 创建按钮
save_btn = Button(root, text='Save as Image', command=save_canvas)
save_btn.pack()
root.mainloop()
```
使用OpenCV提取图片中人物轮廓,并且将图片另存为
在使用OpenCV提取图片中人物轮廓的过程通常涉及以下步骤:
1. 读取图片:使用OpenCV中的`imread`函数读取目标图片。
2. 转换颜色空间:将图片从BGR颜色空间转换到灰度空间,以便处理,这可以通过`cvtColor`函数实现。
3. 应用阈值或边缘检测:为了更好地提取轮廓,通常需要先将图片二值化,这可以通过设置一个阈值来完成,可以使用`threshold`或`adaptiveThreshold`函数。
4. 寻找轮廓:使用`findContours`函数来检测和提取图片中的轮廓。
5. 处理轮廓:可以对提取到的轮廓进行筛选、排序等操作。
6. 保存图片:将提取了轮廓的图片保存到磁盘,这可以通过`imwrite`函数实现。
以下是一个简单的代码示例,展示如何使用Python和OpenCV提取图片中的人物轮廓并另存为:
```python
import cv2
import numpy as np
# 读取图片
image = cv2.imread('path_to_image.jpg')
# 转换为灰度图
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 应用阈值,获取二值化图像
_, binary_image = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
# 寻找轮廓
contours, _ = cv2.findContours(binary_image, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# 遍历轮廓并绘制
for contour in contours:
# 可以设置条件来过滤不需要的轮廓
if cv2.contourArea(contour) > 100: # 这里的100是一个示例值,实际应用中需要根据需要调整
# 绘制轮廓
cv2.drawContours(image, [contour], -1, (0, 255, 0), 3)
# 保存图片
cv2.imwrite('path_to_save_image.jpg', image)
```
在上述代码中,`'path_to_image.jpg'`应替换为你的图片路径,`'path_to_save_image.jpg'`应替换为你希望保存的新图片路径。
阅读全文