python做图像识别该学什么,opencv-python——图像识别入门学习(1)

1、读取图像

首先导入opencv。

import cv2 as cv

如果没有安装,可以在cmd输入:

pip install opencv-python

来安装。

读取图像使用cv.imread()函数,第一个参数是文件名,第二个参数是标志,用于指定图像的读取方式。

cv.IMREAD_COLOR: 加载彩色图像。任何图像的透明度都会被忽视。

cv.IMREAD_GRAYSCALE:以灰度模式加载图像。

cv.IMREAD_UNCHANGED:加载图像,包括alpha通道。

如果不输入则默认第一种,也可以直接输入整数1、0、-1。

读取一下大名鼎鼎的lena标准测试图(图片须放在工作目录)

img = cv.imread("lena.tiff", 1)

img_gray = cv.imread("lena.tiff", 0)

img_alpha = cv.imread("lena.tiff", -1)

可以print(img)看看,发现是一大串数组。存储的是B、G、R通道的信息(opencv的颜色通道按照BGR排序,而非RGB)。

python做图像识别该学什么,opencv-python——图像识别入门学习(1)_第1张图片

2、显示图像

显示图像用cv.imshow(),它也有两个参数,第一个是窗口名称,第二个是要显示的对象。

显示刚才读取的img

cv.imshow("img", img)

运行结果

python做图像识别该学什么,opencv-python——图像识别入门学习(1)_第2张图片

多幅图片可以通过循环显示

先定义titles和images列表

titles = ["img", "img_gray", "img_alpha"]

images = [img, img_gray, img_alpha]

for循环显示

for i in range(3):

cv.imshow(titles[i], images[i])

剩下的两张图:

python做图像识别该学什么,opencv-python——图像识别入门学习(1)_第3张图片

python做图像识别该学什么,opencv-python——图像识别入门学习(1)_第4张图片

键盘输入任意键时关闭所有窗口

cv.waitKey(0)

cv.destroyAllWindows()

3、写入图像

cv.imwrite()可以保存图像,第一个参数是文件名,第二个是要保存的图像。

cv.imwrite('lena.jpg', img)

这样图像就会以jpg格式保存在工作目录中。

224f01ef77a4be2d80ca339a529ed7cf.png

若想输入s保存图像并退出,输入esc不保存图像直接退出,则加入以下代码:

k = cv.waitKey(0) & 0xff

if k == 27: # 输入esc直接退出

cv.destroyAllWindows()

elif k == ord('s'): # 输入s保存并退出

cv.imwrite('lena.jpg', img)

cv.destroyAllWindows()

完整代码

import cv2 as cv

img = cv.imread("lena.tiff", 1)

img_gray = cv.imread("lena.tiff", 0)

img_alpha = cv.imread("lena.tiff", -1)

cv.imshow("img", img)

titles = ["img", "img_gray", "img_alpha"]

images = [img, img_gray, img_alpha]

for i in range(3):

cv.imshow(titles[i], images[i])

k = cv.waitKey(0) & 0xff

if k == 27: # 等待esc退出

cv.destroyAllWindows()

elif k == ord('s'): # 等待s,保存并退出

cv.imwrite('lena.jpg', img)

cv.destroyAllWindows()

附上Lena下载地址: Lena测试图.

你可能感兴趣的:(python做图像识别该学什么)