当前位置:首页python > 正文

Python使用matplotlib实现的图像读取、切割裁剪功能示例

作者:野牛程序员:2023-11-28 11:47:58python阅读 2976

这段代码使用了Matplotlib和NumPy库来进行图像处理。下面是对代码的详细解释:

  1. 导入库:


  2. import matplotlib.pyplot as plt
    import matplotlib.image as mpimg
    import numpy as np

  3. 这里导入了Matplotlib库用于图像显示,Matplotlib的image模块用于图像读取,NumPy用于数组操作。

  4. 读取图像:

  5. img_path = 'path/to/your/image.jpg'
    img = mpimg.imread(img_path)

    通过mpimg.imread函数读取图像文件。img是一个NumPy数组,包含图像的像素信息。

  6. 显示原始图像:

    plt.imshow(img)
    plt.title('Original Image')
    plt.axis('off')
    plt.show()

  7. 使用Matplotlib的imshow函数显示原始图像,title函数设置图像标题,axis('off')用于关闭坐标轴的显示,show函数展示图像。

  8. 切割图像:

  9. x_start, x_end = 100, 300
    y_start, y_end = 50, 250
    cropped_img = img[y_start:y_end, x_start:x_end, :]

    定义切割区域的坐标范围,并通过数组切片操作得到切割后的图像。

  10. 显示切割后的图像:

    plt.imshow(cropped_img)
    plt.title('Cropped Image')
    plt.axis('off')
    plt.show()

  11. 用Matplotlib显示切割后的图像。

  12. 裁剪图像:

  13. crop_x_start, crop_x_end = 20, 180
    crop_y_start, crop_y_end = 30, 150
    cropped_and_resized_img = img[crop_y_start:crop_y_end, crop_x_start:crop_x_end, :]

  14. 定义裁剪区域的坐标范围,并通过数组切片操作得到裁剪后的图像。

  15. 显示裁剪后的图像:

    plt.imshow(cropped_and_resized_img)
    plt.title('Cropped and Resized Image')
    plt.axis('off')
    plt.show()

  16. 用Matplotlib显示裁剪后的图像。

这段代码演示了如何使用Matplotlib和NumPy库读取、切割和裁剪图像。可以根据需要修改切割和裁剪的坐标范围,以适应不同的图像和应用场景。

完整代码:

import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np

# 读取图像
img_path = 'path/to/your/image.jpg'
img = mpimg.imread(img_path)

# 显示原始图像
plt.imshow(img)
plt.title('Original Image')
plt.axis('off')
plt.show()

# 定义切割区域的坐标
x_start, x_end = 100, 300
y_start, y_end = 50, 250

# 切割图像
cropped_img = img[y_start:y_end, x_start:x_end, :]

# 显示切割后的图像
plt.imshow(cropped_img)
plt.title('Cropped Image')
plt.axis('off')
plt.show()

# 定义裁剪区域的坐标
crop_x_start, crop_x_end = 20, 180
crop_y_start, crop_y_end = 30, 150

# 裁剪图像
cropped_and_resized_img = img[crop_y_start:crop_y_end, crop_x_start:crop_x_end, :]

# 显示裁剪后的图像
plt.imshow(cropped_and_resized_img)
plt.title('Cropped and Resized Image')
plt.axis('off')
plt.show()


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击