OpenCV: 颜色色彩空间转换:读取图片

涉及到的函数有cv2.cvtColor(),imread(),imshow(),最常使用的颜色空间有BGR/GRAY/HSV,在OpenCV中有超过150种进行颜色空间转换的方法,而我们经常用到的就是BGR->Gray,BGR->HSV,经常使用的将色彩空间进行转换的函数就是cv2.cvtColor(input_image, flag),其中flag就是转换类型。
  1. 从BGR->Gray的转换,需要使用到flag就是cv2.COLOR_BGR2GRAY
  2. 对于BGR->HSV的转换,使用到的是flag cv2.COLOR_BGR2HSV
    并且需要注意的是,在OpenCV中HSV格式中,H(色彩/色度)的范围是[0,180],S是饱和度,取值范围是[0,255],V(亮度)的取值范围是[0, 255]。但是不通的软甲使用的值可能不同,所以需要将OpenCV中的HSV值与其它软件中的HSV值进行对比。
# 导入模块
import cv2 as cv

# 读取本地图片,对图片进行色彩空间的转换
# 调用imread()函数读入图像
# imread(filename, flags=None)其中,涉及到的None就是告诉函数我们需要以怎样的方式读取这幅图片,cv2.IMREAD_COLOR: 读入一幅彩色图像,透明度会被忽略,默认的参数就是如此。
# cv2.IMREAD_GRAYSCALE:以灰度模式读入图像
image = cv.imread("图片的路径,可以采用相对路径的方式")
# 调用imshow()函数显示图像
cv.imshow("image demo01", image)
cv.waitKey(0)
cv.destroyAllWindows()
  1. cv2.waitKey()是一个键盘绑定函数,时间尺度是毫秒级别,函数等待的特定的几毫秒,是否有键盘输入。特定的几毫秒之内,如果按下任意键,这个函数就会返回其ASCII码值,程序将会继续运行。如果没有键盘输入,返回值为-1,在以上函数中我们将其值设置为0,它就会无限制的等待键盘输入,返回值为-1。
  2. 它也可以检测特定键是否被按下。
  3. cv2.destoryAllWindows()可以轻易的删除任何我们建立的窗口。如果你想要删除特定的窗口可以使用cv2.destroyWindow(),在函数传递窗口名就可以了。
    需要注意的是,也可以先创建一个窗口,之后再加载图像,用到的函数为cv2.namedWindow(), 初始设定的标签为cv2.WINDOW_AUTOSIZE。但是如果你把标签改为cv2.WINDOW_NORMAL,就可以调整窗口的大小了。而默认情况下的cv2.WINDOW_AUTOSIZE是不能够调整窗口大小的。
import cv2 as cv

src = cv.imread("图片路径")
cv.namedWindow('image', cv.WINDOW_NORMAL)  # 可以调整窗口的大小
cv.imshow('image', src)

cv.waitKey(0)
cv.destoryAllWindows()

cv2.cvtColor()函数色彩空间的转换示例

import cv2 as cv

# 色彩空间的转换
def color_space_demo(image):
	# cv.cvtColor(input_image, flag) flag指的是要转换的类型
	gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) # BGR到灰度图像使用的是flag就是cv2.COLOR_BGR2GRAY
	cv.imshow("gray image", gray)
	hsv = cv.cvtColor(image, cv.COLOR_BGR2HSV)    # 从BGR到HSV,使用到的flag就是cv2.COLOR_BGR2HSV
    cv.imshow("hsv image", hsv)
    yuv = cv.cvtColor(image, cv.COLOR_BGR2YUV)
    cv.imshow("yuv image", yuv)
    Ycrcb = cv.cvtColor(image, cv.COLOR_BGR2YCrCb)
    cv.imshow("ycrcb image", Ycrcb)


image = cv.imread("./images/photo01.jpg")
color_space_demo(image)

cv.waitKey(0)
cv.destroyAllWindows()
运行之后就可以显示各种色彩空间下的该图片了。

你可能感兴趣的:(Open,CV+python3.7学习)