一、如何使用
python的开发环境有很多种,本文章中选择用anaconda作为开发环境。同时会简述在anaconda环境下使用基于python语言的OpenCV库等等...
1.python配置
本文章中使用以及面向的是python3的版本,最新版本等可以自行去官网下载。
注官网网址:Download Python | Python.org(且在官网顶部一般已经贴出最新版本)
2.Anaconda
注Anaconda官网:https://www.anaconda.com/download/(根据python的版本,以及自身的电脑的操作系统等进行不同版本的选择及下载)
3.OpenCV库安装
关于库的安装方法有很多,比如选择由pypi提供的安装包等等,这边我们选择使用anaconda里的cmd命令框,打开命令框后再里边输入pip install opencv-python进行一个OpenCV库的安装,若遇到安装失败则可以采用换源进行安装,换源的具体安装格式如下:
豆瓣:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python
清华源:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python
这边显示一下我自己安装后显示结果:
二、图像处理的基本操作
1.读取图像
#读取图像
img = cv2.imread(filename[,flags])
函数释义:
1.img为返回值,是指读取到的图像,为读取到相应图像时则返回"None".
2.filename表示要读取的图像的完整名(包括后缀~)
3.flags为读取标记,该标记用来控制读取文件的类型
值 | 含义 | 数值 |
cv2.IMREAD_UNCHANGED | 保持原格式不变 | -1 |
cv2.IMREAD_GRAYSCALE | 将图像调整为单通道的灰度图像 | 0 |
cv2.IMREAD_COLOR | 将图像调整为3通道的BGR图像。该值为默认值。 | 1 |
具体例子:
import cv2#导包
img = cv2.imread("lena.png")#读取图片
print(img)#打印图像数据
运行结果:
使用print语句打印出了读取图像的数据,运行整个代码后会输出读取图像的部分像素值。
2.显示图像
函数简单介绍:
1.
#namedWindow函数
img = cv2.namedWindow(shijiu)#shijiu为要创建的窗口
#imshow函数
img = cv2.imshow(shijiu,mat)#winname为窗口名称。mat为要显示的图像。
#例子
import cv2
img = cv2.imread("lena.png")
cv2.namedWindow("lena")
cv2.imshow("lana",img)
cv2.waitKey()
cv2.destroyAllWindows()
#缩减代码
import cv2
img = cv2.imread("lena.png)
cv2.imshow("girl",img)
cv2.waitKey()
cv2.destroyAllWindows()
注:代码中的图片读取代码()里的格式使用与图片文件与pycharm文件处于同一文件夹下,若处于不同文件夹下则要加上具体位置,如图片处于桌面时则为C:\lena或者C:/lena。
2.
#waitKey()
img = cv2.waitKey([delay])
#img表示返回值。若没有按键被按下,则返回-1.若有被按键按下,则返回该按键的ascll码。
#delay表示等待键盘触发的时间,一般为ms。若为0或负数表示无限等待。该默认值0。
#例1
import cv2
img = cv2.imread("Kobe.jpeg")
cv2.imshow("24",img)
key=cv2.waitKey()
if key==ord("A"):
cv2.imshow("PressA",img)
elif key==ord("B"):
cv2.imshow("PreaaB",img)
cv2.waitKey()
cv2.destroyAllWindows()
#若按下A键则会出现新的窗口名称为PressA。若按下B键原理与A键相同。
#例2
import cv2
img = cv2.imread("lena.png")
cv2.imshow("beautiful",img)
key=cv2.waitKey()
if key!=-1:
print("Miss you")
cv2.waitKey()
cv2.destroyAllWindows()
#运行程序,会在beautiful中显示图像。但当按下了键盘的任意键后,会触发print括号里的内容。
3.
#destroyAllWindows()函数
img = cv2.destroyAllWindows(img)#img为窗口名称。destroyAllWindows一般用来释放和销毁指定窗口。
#例
import cv2
img = cv2.imread("lena.png")
cv2.imshow("wow",img)
cv2.waitKey()
cv2.destroyAllWindows()
#程序运行后,当再次按下键盘上的任意一个键位后,窗口wow便会被释放。
3.保存图像
函数简单介绍等:
#cv2.imwrite()
retval = cv2.imwrite(filename,img[,params])
#retval为返回值。
#filename为要保存文件的完整路径。
#img为保存图片名称。
#params保存类型参数。
#例
import cv2
img = cv2.imread("9.jpg")
r = cv2.imwrite("result.jpg",img)
cv2.waitKey()
cv2.destroyAllWindows()
三、OpenCV贡献库
使用方法:
1.使用cmake手动编译。
2.通过语句pip install opencv-contrib-python直接安装编译好的OpenCV贡献库。