Python计算机视觉——基本图像操作和处理

本文介绍了Python中的图像处理技术,包括使用PIL库进行图像读取、显示、创建缩略图、复制粘贴区域、调整尺寸和旋转,以及使用Matplotlib绘制图像、点和线。此外,还详细讲解了图像轮廓提取、直方图的基本原理和绘制方法,以及灰度变换、直方图均衡化和高斯滤波的原理与实现过程。
摘要由CSDN通过智能技术生成

图像基本操作

读取并显示图像

在读取图像时,我们可以使用PIL(Python Imaging Library, 图像处理类库)中的函数进行操作,PIL中最重要的模块为Image,要读取一幅图像,我们可以使用Image.open进行操作。

from PIL import Image
pil_im = Image.open('./pic.jpg')
pil_im.show()

运行结果:
在这里插入图片描述
若要对读取的图像进行颜色转换,则可以通过convert()方法实现,比如我们要将读取的图像转换为灰度图,则只需加上convert(‘L’)。

pil_im = Image.open('./pic.jpg').convert('L') #转化为灰度图
pil_im.show()

运行结果:
在这里插入图片描述

创建图像缩略图

使用PIL同样可以方便的创建图像的缩略图,只需使用thumbnail()方法,再添加参数指定生成缩略图的大小。

#创建缩略图
pil_im = Image.open('./pic.jpg')
pil_im.thumbnail((128,128))
pil_im.show()

运行结果:
在这里插入图片描述

复制和粘贴图像区域

若要对图像中的指定区域进行裁剪,则需使用crop()方法,我们通过四元组来指定需裁剪的区域,四元组坐标依次为(左,上,右,下),在PIL中指定坐标系的左上角坐标为(0,0),在裁剪完指定区域后,我们可以将该区域进行旋转然后用paste()方法粘贴回原处。

#复制和粘贴图像区域
pil_im = Image.open('./pic.jpg')
box=(100,100,400,400)
region = pil_im.crop(box) #使用crop函数进行裁剪
# region.show()
region = region.transpose(Image.ROTATE_180)#将所裁剪区域进行旋转
pil_im.paste(region,box)#粘贴回原区域
# region.show()
pil_im.show()

运行结果:
在这里插入图片描述

调整尺寸和旋转

若要将整幅图像进行尺寸的调整,则需使用resize()方法,填写参数即可将图像调整至所需大小,而要旋转图像,则可以使用rotate()方法,该方法是使用逆时针方式进行旋转。

# 调整尺寸和旋转
# 采用resize方法进行尺寸调整
pil_im = Image.open('./pic.jpg')
out = pil_im.resize((128,128))
figure()
subplot(121)
axis('off')
title(r'resize')
imshow(out)
out = pil_im.rotate(45)#用rotate方法进行旋转(逆时针)
subplot(122)
axis('off')
title(r'rotate')
imshow(out)
show()

运行结果:
在这里插入图片描述

绘制图像、点和线

PIL提供了通用的图像处理功能,但当我们需要自定义绘制图表时,则需用到Matplotlib,该类库具有比PIL更强大的绘图功能。

from PIL import Image
from pylab import *
from numpy import *
#绘制图像、点和线
im = array(Image.open('./pic.jpg'))
#绘制图像
imshow(im)
#一些点
x=[100
  • 4
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值