三、机器学习基础知识:Python常用机器学习库(图像处理相关库)

1、OpenCV

OpenCV Python是一个用于解决计算机视觉问题的Python库,是用基于C++实现的OpenCV构成的Python包。OpenCV Python和Numpy兼容,数据都被转换成Numpy数据结构,这使得OpenCV更容易与其它库(如SciPy和Matplotlib)集成。

1.1 窗口操作函数

使用OpenCV可以利用里面的函数在窗口进行图像的显示,涉及到的主要函数有三种:
(1)imshow()函数
imshow()函数是在指定的窗口中显示图像,窗口自动调整为图像大小。语法格式为imshow(string winName, Array InputData),其中,参数winName 是窗口名称,参数
InputData 为输入的图像。如果创建多个窗口,则各窗口需要具有不同的窗口名称。
(2)destroyAllWindows()与DestroyWindow (string winName)
这两个函数都可以卸载窗口,区别在于,函数destroyAllWindows()卸载全部窗口,而函数 DestroyWindow()卸载由参数winName 指定的窗口。
(3)waitkey(int delay =0)
函数 waitKey()等待用户按键,其参数delay是延迟的时间,单位为ms。在等待时间内如果检测到键盘动作,则返回按键的ASCII码,如果没有按下任何键,则返回-1。参数 delay 默认为0,即一直等待键盘输人。

1.2 图像处理

在使用OpenCV时有cv和cv2两个版本,这两个版本都提供了对图片进行读、写和显示的功能。cv对应的函数是LoadImage()、ShowImage()和SaveImage()函数;cv2对应的函数是imread()、imwrite()和imshow()函数,下面以cv2版本为例介绍其中包含的常见函数。
(1)图像的基本读写操作
基本图像处理的函数包括imread()、imwrite()、split()、merge()等。图像读取函数imread()能加载图像文件并返回图像矩阵,如果无法读取图像,将返回一个空矩阵,imread()函数支持bitmap位图、JEPG文件、png图形等各种常见的图形图像格式。
imread()函数的基本格式如下:

imread(const String &filename, int flags)

其中filename表示文件名,flgs为图像色彩模式,默认为IMREAD_COLOR(值为1,BGR图像),其他常见取值如下表所示:

Mode值 说明
IMREAD_UNCHANGED 值为-1,按原样返回读取的图像,带有alpha通道(R,G,B,A 四个通道)
IMREAD_GRAYSCALE 值为0,将图像转换成单通道灰度图
IMREAD_COLOR 值为1,将图像转换为3通道BGR彩色图像,不带alpha通道
IMREAD_REDUCED_GRAYSCALE_2 值为16,将图像转换成单通道灰度图像,并且图像尺寸减小1/2
IMREAD_REDUCED_COLOR_2 值为17,将图像转换成3通道BGR彩色图像,并且图像尺寸减小1/2
IMREAD_LOAD_GDAL 值为8,使用gdal驱动程序加载图像

图像读取与保存实例:
使用cv2读取图像,将图像转换为灰度图显示并保存。

import cv2 
img = cv2.imread('img.jpg',0)  #转变为灰度图
cv2.imshow('image',img)
k = cv2.waitKey(0)
if k == 27:                 #按Esc键直接退出
    cv2.destroyAllWindows()
elif k == ord('s'):            # 按's'键先保存灰度图,再退出
    cv2.imwrite('result.png',img)
    cv2.destroyAllWindows()

在这里插入图片描述

(2)图像的通道拆分操作
图像通常由多个通道组成,使用cv2的merge()和split()函数可以对图像的通道进行拆分与组合,例如将图像拆分为三个通道,然后将每个通道单独合成新的图像并保存。
拆分实例:

import numpy as np
import cv2 
img = cv2.imread('img.jpg')   #BGR图像模式
cv2.imshow('image',img)
k = cv2.waitKey(0)
if k == 13:                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

七层楼的疯子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值