计算机视觉实验一——图像的基本操作

计算机视觉相关实验内容主要来自于《Python计算机视觉编程(Jan Erik Solem著)》这本书,感兴趣的同学可以系统学习。网盘下载链接: link

一、实验目标

  1. 分别使用 PIL 库和 OpenCV 库读取图像并实现可视化,对比OpenCV 读取和 PIL 读取的差异
  2. 利用 thumbnail() 函数创建图像缩略图,利用 resize() 函数处理图像,对比两者差别
  3. 绘制图像的轮廓与直方图
  4. 实现图像的灰度变换、直方图均衡化
  5. 实现图像的不同高斯模糊、计算导数
  6. ROF模型去噪

二、实验内容

1.分别使用 PIL 库和 OpenCV 库读取图像并实现可视化,对比OpenCV 读取和 PIL 读取的差异

①使用 PIL 库读取图像并实现可视化

from PIL import Image
# 读取图片
img = Image.open('img1.jpg')
# 显示图片,调用show方法
img.show()

在这里插入图片描述
②使用OpenCV 库读取图像并实现可视化

# 读入图像
# 1的话读取全彩图片 0读取灰度图片即黑白图片
img = cv2.imread('img1.jpg', 1)

# 显示图像
cv2.namedWindow('img', cv2.WINDOW_NORMAL)
cv2.resizeWindow('img', 500, 490)

cv2.imshow('img', img)

cv2.waitKey(0)  # 让程序暂停,否则图片一闪而过来不及观察图片
# 保存图像
# IMWRITE_JPEG_QUALITY的取值范围为0-100,下面写入jpg格式,数值越小,压缩比越高,图片失真严重
cv2.imwrite('img1_copy.jpg', img, [cv2.IMWRITE_JPEG_QUALITY, 0])

在这里插入图片描述
③二者的差异
(1)输出差异
cv2.imread()读取的是图像的真实数据。lmage.open()函数只是保持了图像被读取的状态,但是图像的真实数据并未被读取。
(2)通道差异
Image.open()读取的通道顺序是RGB,cv2.imread()读取的通道顺序为BGR

# 读入图像
# OpenCV读取
img1 = cv2.imread('img1.jpg')
# PIL读取
img2 = Image.open('img1.jpg')

# 显示图像
plt.figure(dpi=120)
plt.subplot(121)  # 1代表行,2代表列,所以一共有2个图,1代表此时绘制第一个图。
plt.axis('off')  # 取消坐标轴
plt.title("OpenCV")  # 标题
plt.imshow(img1)  # 显示图片

plt.subplot(122)  # 1代表行,2代表列,所以一共有2个图,2代表此时绘制第二个图。
plt.axis('off')  # 取消坐标轴
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Moonee_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值