前提条件
使用工具python3.x 使用库numpy;opencv,
api简介
1.cv.imread(“图片路径”) 用来读取本地图片,函数会返回一个对象
2.cv.imshow(“窗口名字”,b) 建立窗口来显示图片,b为cv.imread函数返回的对象
3.cv.split(src) 分割图像的彩色通道,一般分割为三通道,src为cv.imread函数返回的对象
4.cv.cvtColor(image, cv.COLOR_BGR2GRAY) 图片色彩转换,image为cv.imread函数返回的对象,cv.COLOR_BGR2GRAY是宏定义,表示将图片转换为灰度图像
5.cv.VideoCapture(“MP4文件路径”) 读取本地mp4文件,可以通过循环读取视频的每一帧图像
6.captrue =cv.VideoCapture(“MP4文件路径”) 6.(1)captrue .read() 返回读取每一帧结果
7.cv.inRange(img, lowerb = arr1, upperb = arr2) 实现二值化功能,参数img是cv.imread函数返回的对象,arr1,arr2是一个图像三通道的数组,表示要进行二值化的范围,具体可见代码示例
代码示例
import cv2 as cvimport numpy as npdef colorSpaceDemo(image): #将图片转换成各类型的颜色 gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) cv.imshow("gray",gray) hsv = cv.cvtColor(image, cv.COLOR_BGR2HSV) cv.imshow("hsv",hsv) yuv = cv.cvtColor(image, cv.COLOR_BGR2YUV) cv.imshow("yuv",yuv) YCrcb = cv.cvtColor(image, cv.COLOR_BGR2YCrCb) cv.imshow("Ycrcb",YCrcb )#读取视频def extraceObjectDemo(): captrue = cv.VideoCapture("test2.mp4") while(True): ret, frame = captrue.read() if ret == False: break; hsv = cv.cvtColor(frame, cv.COLOR_BGR2HSV) lowerHsv = np.array([37, 43, 46]) upperHsv = np.array([77, 255, 255]) mask = cv.inRange(hsv, lowerb = lowerHsv , upperb = upperHsv ) cv.imshow('video',frame) #mask 通过对某一个范围的像素值进行检测,可以用来追踪 cv.imshow('mask', mask) c = cv.waitKey(40) if c==27: #按ESC键退出 breaksrc=cv.imread("D:/openCV_image/image/1.png")# print(src)#cv.namedWindow("input image",cv.WINDOW_AUTOSIZE) #新建一个window窗口,名字是input image,窗口大小为cv.WINDOW_AUTOSIZE,表示自动缩放# colorSpaceDemo(src)# extraceObjectDemo()b, g, r = cv.split(src) #彩色通道分割cv.imshow("blue",b)cv.imshow("green",g)cv.imshow("red",r)# src[:,:,2] = 0 #将src的最后一个通道置0,效果可查看# src[:,:,0] = 0 # src = cv.merge([b, g, r]) #可以将拆开的通道再合并cv.imshow("input image",src)cv.waitKey(0) #等待按键,参数是等待时间cv.destroyAllWindows() #摧毁所有windows窗口
查看更多关于python opencv(一) 色彩转换的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did126308