这是我参与更文挑战的第1天,活动详情查看: 更文挑战
OpenCV
是一个C++
库,目前流行的计算机视觉编程库,用于实时处理计算机视觉方面的问题,它涵盖了很多计算机视觉领域的模块。在Python
中常使用OpenCV
库实现图像处理。
本文将介绍如何在Python3
中使用OpenCV
实现对图像处理的基础操作:
- 读入图像
- 显示图像
- 复制图像
- 保存图像
电脑环境准备
Python版本:Python3.7
OpenCV版本:OpenCV4.1
读入图像
Opencv
中使用函数cv2.imread(filepath,flags)
读入一张图像,该函数中各参数的说明如下:
filepath
:读入图片的完整路径flags
:读入图片的标志cv2.IMREAD_COLOR
:默认参数,读入彩色图片,忽略alpha通道,可以以1指定cv2.IMREAD_GRAYSCALE
:读入灰度图片,可以以0指定cv2.IMREAD_UNCHANGED
:读入完整图片,包括alpha通道
import cv2
#1的话读取全彩图片 0读取灰度图片即黑白图片
img = cv2.imread('hello.jpg', 1)
img1 = cv2.imread('hello.jpg', 0)
显示图像
Opencv
中使用函数cv2.imshow(name,img)
显示图像,该函数中各参数的说明如下:
name
:显示图像的窗口名字img
: 是即将要显示的图像(imread读入的图像),窗口大小自动调整为图片大小
需要注意的是显示图片的时候要让程序暂停,否则图片会一闪而过,用户就不会观察到图片。
因此需要用到:cv2.waitKey(0)
import cv2
img = cv2.imread('hello.jpg',1)
#通过窗口展示图片 第一个参数为窗口名 第二个为读取的图片变量
cv2.imshow('image',img)
#暂停cv2模块 不然图片窗口一瞬间即就会消失 观察不到
cv2.waitKey(0)
运行结果如下:
若此处将img = cv2.imread('hello.jpg',1)改为
img = cv2.imread('hello.jpg',0)
运行程序后,显示如下:
复制图像
Opencv
中如果想要将目前的图像复制,可以使用以下语句实现:
-img1 = img.copy()
:img1是新图像,img是原图像
import cv2
img = cv2.imread('hello.jpg',0)
img1=img.copy()
#通过窗口展示图片 第一个参数为窗口名 第二个为读取的图片变量
cv2.imshow('image',img1)
#暂停cv2模块 不然图片窗口一瞬间即就会消失 观察不到
cv2.waitKey(0)
运行程序后,显示如下:
保存图像
Opencv
中使用函数imwrite("path",image)
存储图像,该函数中各参数的说明如下:
path
:保存图片的路径(自定义名称)image
:读取的图片对象
import cv2
img = cv2.imread('hello.jpg',0)
#通过窗口展示图片 第一个参数为窗口名 第二个为读取的图片变量
cv2.imshow('image',img)
cv2.imwrite('D:\Pycharm\Demo1\opencv\hello.jpg', img)
#暂停cv2模块 不然图片窗口一瞬间即就会消失,观察不到
cv2.waitKey(0)
运行程序后,显示如下:
设置储存的文件,也储存在了指定目录下:
结语
本月将陆续推出相关系列文章,
篇篇精彩,尽请关注。