打不开公式编辑器(公式编辑器用不了)
1056
2022-05-29
一、OpenCV-Python的安装
OpenCV是图像预处理的重要工具,提供了众多的支持Python的API,其安装步骤如下:
配置Python环境
键盘输入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小时内删除侵权内容。