OpenCV基本操作——OpenCV安装及图片读取

网友投稿 1096 2022-05-29

一、OpenCV-Python的安装

OpenCV是图像预处理的重要工具,提供了众多的支持Python的API,其安装步骤如下:

配置Python环境

OpenCV基本操作——OpenCV安装及图片读取

键盘输入Windows+R键,输入cmd,回车

在命令行中输入pip install opencv-python(在输入pip install opencv-python==x.x.x可以安装指定版本的OpenCV-Pyhton包),按下回车键,等待安装即可

测试:在命令行下或者对应环境的IDE中输入以下代码后执行:

import cv2 as cv image = cv.imread("C:\\Users\\27914\\Desktop\\images\\test1.jpeg")#路径下必须有图片 cv.imshow("image",image) cv.waitKey(0) cv.destroyAllWindows()

若能成功显示图片说明安装成功

二、图像读取与色彩空间

1.图像读取与展示

OpenCV默认的读取的API是imread(),参数中第一个参数是图片的路径,第二参数是读取的图片的颜色类型(为可选参数),这里第二个参数flags主要会用到的三个类型:

cv.IMREAD_GRAYSCALE:返回原图的灰度图

cv.IMREAD_ANYDEPTH:保持原图的通道数不变

cv.IMREAD_COLOR:返回一个彩色图

图像展示使用的API是imshow(),第一个参数是要展示的窗口名称,第二个参数是要是的图片对象

具体如下:

import cv2 as cv path1 = "C:\\Users\\2 path1 = "C:\\Users\\27914\\Desktop\\images\\test1.jpeg" image = cv.imread(path1) cv.namedWindow("image",cv.WINDOW_AUTOSIZE)#开启一个窗口 cv.imshow("image",image) cv.waitKey(0) cv.destroyAllWindows()

若flags参数选定,如:

image = cv.imread(path1,cv.IMREAD_GRAYSCALE) cv.namedWindow("image",cv.WINDOW_AUTOSIZE)#开启一个窗口 cv.imshow("image",image) cv.waitKey(0) cv.destroyAllWindows()

一般最多只会用到cv.IMREAD_GRAYSCALE。

waitKey(0)表示让程序暂停,等待指令,0表示一直等待直到关闭;

destoryAllWindows(),表示关闭所有窗口。

2.图像色彩空间的转换

色彩空间转换的API是cvtColor(),参数src是指要处理的原始图像,参数code是指要转换的色彩空间,在OpenCV中默认读取的色彩空间是BGR,故在初次转换色彩空间时一般由BGR转出,详细代码如下:

import cv2 as cv path1 = "C:\\Users\\27914\\Desktop\\images\\test1.jpeg" image = cv.imread(path1) gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY) hsv = cv.cvtColor(image,cv.COLOR_BGR2HSV) hls = cv.cvtColor(image,cv.COLOR_BGR2HLS) lab = cv.cvtColor(image,cv.COLOR_BGR2LAB) luv = cv.cvtColor(image,cv.COLOR_BGR2LUV) cv.imshow("image",image) cv.imshow("gray",gray) cv.imshow("hsv",hsv) cv.imshow("hls",hls) cv.imshow("lab",lab) cv.imshow("luv",luv) cv.waitKey(0) cv.destroyAllWindows()

gray:

hsv:

这里只列出了比较重要的两种色彩空间的输出。

这里浅谈一下hsv色彩空间:

在BGR色彩空间中,BGR代表的是颜色通道(B为蓝色通道,G为绿色通道,R是红色通道),在这个色彩空间只是生产了人类所能感知的颜色的种类,而并没有注重颜色的深浅明暗,在图像预处理中,我们要尽可能地得到图像更加全方面的信息,而hsv色彩空间刚好可以满足这个要求,hsv中h代表的是色彩,s代表深浅,v代表亮度,我们可以通过对h、s、v进行阈值的分割得到不同亮度深浅的颜色,在色彩分割能够起到很好的效果。

API OpenCV

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:P12.3-VueCLI3创建项目
下一篇:就问你服不服?
相关文章