【问题标题】:applying multiple effect to opencv live stream对 opencv 直播流应用多重效果
【发布时间】:2020-12-12 07:38:54
【问题描述】:

我想用opencv和python在raspberry上写一个脚本,可以对直播视频应用效果, 一切正常,但问题是当它处于灰度模式时我无法将clahe应用于流,当流不是灰度时我可以应用clahe但是当我将其更改为灰度时clahe不起作用。 这是我的代码:

import cv2
cap = cv2.VideoCapture(0)
gray_flag=True
cl_flag = False

def clahe():

    global frame
    clahe = cv2.createCLAHE(20, tileGridSize=(8,8))  
    lab = cv2.cvtColor(frame, cv2.COLOR_BGR2LAB) 
    l, a, b = cv2.split(lab)  
    l2 = clahe.apply(l)  
    lab = cv2.merge((l2,a,b))  
    frame = cv2.cvtColor(lab, cv2.COLOR_LAB2BGR)

while True:
    was_pressed = False
    ret, frame = cap.read()
    gray=cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    if c & 0xFF == ord('h'):
        if not gray_flag:
            gray_flag = True        
        else:
            gray_flag = False

    elif c & 0xFF == ord('d'):
        if not cl_flag:
            cl_flag = True
        else:
            cl_flag = False

    if gray_flag:    
        if cl_flag:
            clahe()
        else:
            pass
        cv2.imshow('a', gray)

    else:
        if cl_flag:
            clahe()
        else:
            pass
        cv2.imshow('a', frame)
cap.release()
cv2.destroyAllWindows()

有人知道如何在灰度和彩色中应用clahe吗?

【问题讨论】:

    标签: python opencv raspberry-pi3


    【解决方案1】:

    我认为这是因为它们没有相同数量的通道,因此您无法从灰度转换为clahe

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-15
      • 2020-05-17
      • 2013-02-07
      • 2013-08-21
      • 2015-10-26
      • 1970-01-01
      相关资源
      最近更新 更多