opencv学习笔记(一)——初遇图像

本博客仅用于个人学习及交流。如有谬误,欢迎指正。

前言:最近在学习opencv,说好要写博客但是咕了好久。现在回头再看发现忘了好多…写博客的同时也算巩固复习吧…由于本人还在新手村附近徘徊,此博客可能会有很多问题。希望你发现问题后可以不要骂我,请心平气和留下评论,我会认真学习并修改。一起加油吧!

读取图像

读取图像使用的是 cv2.imread() 函数。

在括号中我们需要给出图像的路径以及读取方式。

如果图像与代码文件在同一文件夹下,则给出相对路径即可。反之则需要给出绝对路径。获取一张图片的绝对路径可以这样做:在图片上右键—属性—安全—对象名称。复制对象名称就得到了图片的绝对路径。但是,此时直接粘贴进代码会报错!!因为这样获取的绝对路径的表示方法是单右斜线形式的,而imread()不支持这种方式。我们可以稍加修改,用双右斜线形式单左斜线形式等来代替。

读取方式有以下三种:

cv2.IMREAD_COLOR:读入一幅彩色图像,图像的透明度都会被忽略。

cv2.IMREAD_GRAYSCALE:以灰度模式读取图像。

cv2.IMREAD_UNCHANGED:读取一幅图像,包括alpha channel。

注意:除了输入上面三种flag,我们也可以用简单的 1,0,-1 表示。

示例:

img = cv2.imread('test.PNG',0)  #这里使用的是相对路径,0表示以灰度模式读取

若想要试一下路径对不对,可以用 print(img) 。如果输出一堆矩阵,那么恭喜你,是对的。如果输出None,那么说明哪里出错了,需要修改一下。

显示图像

cv2.imshow():用来显示图像,窗口大小随图像大小自动调整。括号中需要给出窗口名称。你也可以用它显示多幅图像,只需要给他们不同的窗口名。

cv2.waitKey():这是一个键盘绑定函数。它的参数以毫秒为单位。函数在给定的毫秒内等待键盘动作。如果在给定的几毫秒之内按下任意键,程序将会继续运行。如果我们设置这个函数的参数为 0,那它将会无限期的等待键盘输入。

它也可以被用来检测特定键是否被按下,例如按下按键 a 等。例如:

k = cv2.waitKey(0)  #保存输入的按键
if(k == ord('a')):   #当按键为a时,输出img且窗口名为lalala
	cv2.imshow('lalala', img)

cv2.destroyAllWindows():销毁我们创建的所有窗口。

cv2.destroyWindow():用于销毁任何特定的窗口,括号内填入想销毁的窗口名称。

cv2.namedWindow():用于指定窗口是否可调整大小。默认情况下,flag为cv2.WINDOW_AUTOSIZE,即窗口随图片自动调整;指定flag为cv2.WINDOW_NORMAL,就可以调整窗口大小了。

示例:

cv2.namedWindow('image', cv2.WINDOW_NORMAL)
cv2.imshow('lalala',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

保存图像

保存图像使用 cv2.imwrite() 函数。

括号内输入文件名及保存的对象。

示例:

cv2.imwrite('grey.png', img)

示例代码

将以上内容合在一起,写出一个简单的程序。

#导入所需的包
import numpy as np
import cv2

#此次所学
img = cv2.imread('test.PNG',0)
cv2.namedWindow('lalala')
cv2.imshow('lalala',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

想知道效果,请自己动手试一试吧!【 我不会承认是我懒得贴了(悄悄)】

参考资料:OpenCV-Python Toturials

谢谢看到这里的你。

opencv学习笔记(一)——初遇图像》有2个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注