python opencv(一) 色彩转换

前提条件

使用工具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 cv
import numpy as np

def 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键退出
			break
src=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窗口


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值