python+opencv 色彩转换,分离与合并+视频提取及利用inRange 提取锁定颜色 B站245

python+opencv色彩转换,分离与合并

import cv2 as cv
import numpy as np

#色彩转换
def color_change(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)


img=cv.imread('D:/fengge.jpg')  #0 图片变为灰色
cv.imshow('image',img)
#通道分离成三个通道
b,g,r = cv.split(img)
cv.imshow('b',b)
cv.imshow('g',g)
cv.imshow('r',r)
img[: ,: , 2]= 2  #通道转变
img=cv.merge([b,g,r])#通道合并
cv.imshow('change',img)


k = cv.waitKey(0)

视频提取与 利用inRange 提取锁定颜色

import cv2 as cv
import numpy as np
def extract_object():
    capture=cv.VideoCapture('D:/viseo.MP4')
    while (True):
        ret, fet = capture.read()
        if ret == False:
            break;
        hsv=cv.cvtColor(fet,cv.COLOR_BGR2HSV)
        lower_hsv = np.array([100,43,46])
        higer_hsv = np.array([124,255,255])

        mask=cv.inRange(hsv,lowerb=lower_hsv,upperb=higer_hsv) #用inRange提取蓝颜色,
        dst=cv.bitwise_and(fet,fet,mask=mask)  #用与 进行颜色提取蓝颜色即原来的蓝色和白色 与 的话,蓝色就显示出来了
        cv.imshow('viseo',fet)
        cv.imshow('mask',mask)
        cv.imshow('dst',dst)
        c = cv.waitKey(40)
        if c==27:
            break


extract_object()

从电脑自带摄像头中获取视频

import cv2
import numpy as np
cap=cv2.VideoCapture(0)#0就是从自己电脑设备,若为1 则是在其他设备
while(True):
    ret,frame=cap.read()
    gray=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
    cv2.imshow('frame',gray)
    if cv2.waitKey(1)&0xFF == ord('9'):
        break
cap.release()
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中使用OpenCV进行不规则多边形ROI区域提取需要以下步骤: 1. 导入所需的库 我们需要导入OpenCV库,并将其命名为cv2。 2. 读图像 使用cv2.imread()函数读图像。这里假设图像文件名为"image.jpg"。 3. 创建ROI多边形 定义一个包含不规则多边形顶点的列表作为ROI区域。 4. 创建掩膜 使用cv2.fillPoly()函数创建一个与图像大小相同的空白图像,作为掩膜。然后使用cv2.fillPoly()函数在掩膜上填充多边形。 5. 应用掩膜 使用cv2.bitwise_and()函数将原始图像与掩膜进行按位与操作,即只保留ROI区域。 6. 显示结果 使用cv2.imshow()函数显示提取的ROI区域。 7. 释放窗口 使用cv2.waitKey(0)等待按下任意键后,使用cv2.destroyAllWindows()函数关闭窗口。 以下是一个简单的示例代码: ```python import cv2 import numpy as np # 读图像 image = cv2.imread('image.jpg') # 创建ROI多边形 roi_vertices = np.array([[(100, 100), (300, 100), (200, 300), (50, 200)]], dtype=np.int32) # 创建掩膜 mask = np.zeros_like(image) cv2.fillPoly(mask, roi_vertices, 255) # 应用掩膜 roi_image = cv2.bitwise_and(image, mask) # 显示结果 cv2.imshow('ROI Image', roi_image) # 释放窗口 cv2.waitKey(0) cv2.destroyAllWindows() ``` 将以上代码保存为Python脚本,运行后会显示提取的ROI区域图像。其中,roi_vertices是一个包含多边形顶点的列表,可以根据需要调整顶点的坐标和个数来定义不规则多边形的形状。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值