一、关于 OpenCV Python 的中文教程
学习 OpenCV 先来看看它的 LOGO:
这个专栏我们是自学 OpenCV,不需要任何参考资料,一个专栏即可搞定!
书某人最近学 OpenCV,先是在搜索引擎上看了一下:
没有找到很好的教程,所以书某人在自学的过程中,推出了本专栏,希望能精准记录一些内容,供大家学习!
二、安装 OpenCV-Python
老方法,Windows + R 调出 “运行” 界面:
在 “运行” 界面中输入 cmd 后,按下回车键(enter),调出管理员界面。
cmd
输入命令(使用清华大学镜像源进行安装):
pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
等待一分钟左右,安装完成:
安装成功后,我们开始初步学习 OpenCV 吧!
三、读入图像
使用函数cv2.imread()
读入图像。
imread()
函数有两个参数,第一个参数是图片路径,第二个参数是读取图片的方式。
cv2.IMREAD_COLOR
:读入一副彩色图像。图像的透明度会被忽略,这是默认参数。cv2.IMREAD_GRAYSCALE
:以灰度模式读入图像
import cv2
image = cv2.imread('messi.jpg', 0)
警告:
就算图像的路径是错的,OpenCV 也不会提醒你的,但是当你使用命令print(img)时得到的结果是None。
四、显示图像
使用函数 cv2.imshow()
显示图像。
窗口会自动调整为图像大小。
第一个参数是窗口的名字,其次才是我们的图像。你可以创建多个窗口,只要你喜欢,但是必须给他们不同的名字。
import cv2
image = cv2.imread('messi.jpg', 0)
cv2.imshow('Messi',image)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.waitKey()
是一个键盘绑定函数。
注意,它的时间尺度是毫秒级。函数会等待特定的几毫秒,看是否有键盘输入。
这几毫秒之内,如果按下任意键,这个函数会返回按键的 ASCII 码,程序继续运行。如果没有键盘输入,返回 -1。
我们设置这个函数的参数为 0,那它会无限期的等待键盘输入。
它也可以被用来检测特定键是否被按下,例如按键 a 是否被按下,这个后面我们会接着讨论。
cv2.destroyAllWindows()
可以轻易删除任何我们建立的窗口。
如果你想删除特定的窗口,可以使用 cv2.destroyWindow()
命令,在括号内输入你想删除的窗口名。
有一种特殊的情况,你可以先创建一个窗口,然后再加载图像。这种情况下,你可以决定窗口是否可以调整大小。
可以使用 cv2.namedWindow()
函数,初始设定函数标签为 cv2.WINDOW_AUTOSIZE
,但是如果你把标签改成 cv2.WINDOW_NORMAL
,就可以调整窗口大小了。
这种方式在图像维度过大,或要添加轨迹条时,将会很有用。代码如下:
import cv2
messi = cv2.imread('messi.jpg', 1)
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
cv2.imshow('image', messi)
cv2.waitKey(0)
cv2.destroyAllWindows()
原始图片:
鼠标拖拽后:
五、保存图像
有时候我们处理完图片后,需要保存。我们就要使用 cv2.imwrite()
函数了。
imwrite()
函数需要填写两个参数:第一个是文件名,第二个是要保存的图片。
cv2.imwrite('messi.png', messi)
六、示例(1)—— jpg 转 png
根据本文,我们可以写一个小程序,用来将 jpg 转为 png:
import cv2
img_name = input('输入图片名:')
img_read = cv2.imread(img, 1)
cv2.imwrite(img_name[:-4], img_read)
七、示例(2)—— 图片转黑白
下面的程序将会加载一张图片,显示黑白后的图片,如果按下’s’键,保存后退出;按下 ESC 键退出不保存。
import cv2
messi = cv2.imread('messi.jpg', 0)
cv2.imshow('MESSI', messi)
key = cv2.waitKey(0)
if key == 27:
cv2.destroyAllWindows()
elif key == ord('s'):
cv2.imwrite('GrayMessi.jpg', messi)
cv2.destroyAllWindows()
显示图片:
按下s键:
按下 ESC 键:
本期内容结束,我们下期见!点赞助力书某人哦~