diff --git a/sketchCamera.py b/sketchCamera.py new file mode 100644 index 0000000..0e137fe --- /dev/null +++ b/sketchCamera.py @@ -0,0 +1,43 @@ +import cv2 +import numpy as np + +def sketch(image): + # 将图像转换为灰度图 + gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) + # 图像取反 + gray_inverse = cv2.bitwise_not(gray) + # 高斯模糊 + gray_inverse = cv2.GaussianBlur(gray_inverse, (15, 15), 50) + # 颜色减淡混合 + sketch_image = cv2.divide(gray, 255 - gray_inverse, scale=256) + return sketch_image + +def main(): + # 打开摄像头 + cap = cv2.VideoCapture(0) + if not cap.isOpened(): + print("无法打开摄像头") + return + + while True: + # 读取一帧图像 + ret, frame = cap.read() + if not ret: + break + + # 将图像转换为素描风格 + sketch_frame = sketch(frame) + + # 显示原始图像和素描图像 + cv2.imshow('Sketch', sketch_frame) + + # 按下 'q' 键退出 + if cv2.waitKey(1) & 0xFF == ord('q'): + break + + # 释放摄像头并关闭所有窗口 + cap.release() + cv2.destroyAllWindows() + +if __name__ == "__main__": + main() \ No newline at end of file