OpenCV基本操作——OpenCV安装及图片读取
一、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进行阈值的分割得到不同亮度深浅的颜色,在色彩分割能够起到很好的效果。
- 点赞
- 收藏
- 关注作者
评论(0)