【Python OpenCV】第一天:走进 OpenCV


一、关于 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 键:
在这里插入图片描述


本期内容结束,我们下期见!点赞助力书某人哦~

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值