【发布时间】:2023-01-10 10:17:14
【问题描述】:
我正在尝试用 Python 创建一个程序来检索网络摄像头镜头并应用缓慢而持续的色调变化,类似于色调循环效果。此外,我想知道是否可以将色调循环仅应用于网络摄像头镜头中的绿色,尽管我不确定如何检测帧中的颜色并将循环仅应用于该颜色。
我曾尝试使用我发现的这段代码,尽管它会应用于整个帧和某些斑点的输出变色/怪异斑点,具体取决于它所在的循环部分。
import cv2
import numpy as np
# Initialize video capturer
cap = cv2.VideoCapture(0)
# Set frame width and height
frame_width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
frame_height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
# Initialize angle for hue rotation
angle = 0
while True:
# Capture frame
ret, frame = cap.read()
# Convert frame to HSV color space
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
# Split channels
h, s, v = cv2.split(hsv)
# Increment angle
angle = (angle + 1) % 360
# Rotate hue channel
h = (h + angle) % 180
# Merge channels back to HSV image
hsv = cv2.merge((h, s, v))
# Convert back to BGR color space
result = cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR)
# Display frame
cv2.imshow("Webcam", result)
# Check for user input
key = cv2.waitKey(1)
if key == 27: # Esc key
break
# Release video capturer
cap.release()
# Close all windows
cv2.destroyAllWindows()
【问题讨论】:
标签: python opencv video-processing webcam