计算机视觉

1、 什么是计算机视觉

计算机视觉又称为机器视觉(Machine Vision),顾名思义是一门“教”会计算机如何去“看”世界的学科。是指用摄像机和电脑及其他相关设备,对生物视觉的一种模拟。它的主要任务让计算机理解图片或者视频中的内容,就像人类和许多其他生物每天所做的那样。在机器学习大热的前景之下,计算机视觉与自然语言处理(Natural Language Process, NLP)及语音识别(Speech Recognition)并列为机器学习方向的三大热点方向。

计算机视觉应用非常广泛,有图像处理(picture processing)、图像分类(Image Classification)、目标检测(Object Detection)、图像分割(Image Segmentation)、人脸检测与识别 (Face Detection and Recognition)、OCR(Optical Character Recognition,光学字符识别)等。
在这里插入图片描述

在这里插入图片描述
起初我们可以将其任务目标拆分为:

让计算机理解图片中的场景(办公室,客厅,咖啡厅等)
让计算机识别场景中包含的物体(宠物,交通工具,人等)
让计算机定位物体在图像中的位置(物体的大小,边界等)
让计算机理解物体之间的关系或行为(是在对话,比赛或吵架等),以及图像表达的意义(喜庆的,悲伤的等)

2、图像处理

2.1 什么是图像处理?
一幅图像可以定义成一个二维空间函数,即 I = f(x,y),I 是二维空间,x和y是空间中的坐标,f是位于二维空间中x和y坐标处的灰度值,即使在计算机中可以把图像看做一个矩阵。

    图像处理(狭义)是对输入图像进行某种变换得到输出图像,是一种图像到图像的过程。主要指对图像进行各种操作以改善图像的视觉效果,或对图像进行压缩编码以减少所需存储空间或传输时间、传输通路的要求,包括图像增强、图像恢复和重建,以及图像编码。

2.2 计算机视觉和图像处理的关系

    图像处理旨在处理原始图像以应用某种变换,其目标通常是改进图像或将其作为某项特定任务的输入,而计算机视觉的目标是描述和解释图像。计算机视觉使用机器学习技术建模图像处理。计算机视觉应用机器学习来识别用于解释图像的模式。就像人类视觉的视觉推理过程一样;我们可以区分对象,对它们进行分类,根据它们的大小对它们进行排序等等。

2.3、python中的图像处理
2.3.1Python安装PIL
PIL仅支持到Python2.7以下的版本,加上年久失修,于是一群志愿者在PIL的基础上创建了兼容的版本,名字叫Pillow,支持最新Python 3.x,又加入了许多新特性,因此,如果我们python的版本比较高,我们可以直接安装使用Pillow。

安装Pillow需要对应满足版本的pip,所以安装前最好更新一下pip,不然容易安装失败!

python -m pip install --upgrade pip

然后在命令行下直接通过pip安装:

pip install pillow

安装完成之后,我们就可以在命令行输入:

pip list

我们就可以看到安装好的pip和Pillow的版本了。
在这里插入图片描述
1.1打开图片

from PIL import Image
#打开图片
image = Image.open("jmu.jpg")
image.show()

1.2彩色图像转换成灰色图像

from PIL import Image
#转换成灰度图像
image = Image.open("jmu.jpg").convert('L')
image.show()

1.3转换图片格式(.jpg→.png)

from PIL import Image
#转换图片格式
im = Image.open("D:/pycharm/cnn/jmu.jpg")
im.save("D:/pycharm/cnn/jmu.png")

1.4创建缩略图
缩略图(thumbnail image)指的是将原图缩小至一个指定大小(size)的图像。通过创建缩略图可以使图像更易于展示和浏览。

from PIL import Image
# 读取图片
img = Image.open('D:/pycharm/cnn/jmu.jpg')
# 制定缩略尺寸
img.thumbnail((500, 100))
print("缩略图尺寸:", img.size)

1.5 复制和粘贴图像区域
(1)复制:copy()方法

使用 crop()方法可以从一幅图像中裁剪指定区域:

box = (left, top, right, bottom)
img.crop(box)  # img是读取的图片对象

(left, top, right, bottom),表示矩形左上角与右下角的坐标。

(2)粘贴:paste方法

该函数的作用是将一张图片粘贴至另一张图片中,粘贴后的图片模式将自动保持一致,不需要进行额外的转换。

paste(image, box=None, mask=None)
  • box:指定图片被粘贴的位置或者区域,其参数值是长度为 2 或者 4 的元组序列,长度为 2 时,表示具体的某一点 (x,y);长度为 4 则表示图片粘贴的区域,此时区域的大小必须要和被粘贴的图像大小保持一致。
  • mask:可选参数,为图片添加蒙版效果。
from PIL import Image
# 读取图片
img = Image.open('D:/pycharm/cnn/jmu/xyl01.jpg')
box = (100,100,300,300)
region = img.crop(box)
region.show()
region = region.transpose(Image.ROTATE_180)
img.paste(region,box)
img.show()

1.6 调整尺寸和旋转
(1)调整尺寸

在图像处理过程中经常会遇到缩小或放大图像的情况,Image 类提供的 resize() 方法能够实现任意缩小和放大图像。

 
from PIL import Image
 
# 读取图片
img = Image.open('D:/pycharm/cnn/jmu/xyl01.jpg')
# 调整尺寸
img1 = img.resize((125, 125))
# 输出图片
img1.show()

(2)旋转

Image 类提供了函数rotate(),可以任意角度旋转

from PIL import Image
 
# 读取图片
img = Image.open('D:/pycharm/cnn/jmu/xyl01.jpg')
# 旋转90°
img1 = img.rotate(90)
# 输出图片
img1.show()
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值