赞
踩
素描风格实现步骤:
C=MIN(A+(A×B)/(255-B),255)
来计算混合结果。这里,A 是原始灰度图像的像素值,B 是模糊后图像的像素值。通过这个公式,我们可以根据原始图像和模糊图像的亮度值来计算新的像素值,从而得到具有素描风格的图像。
import cv2 import numpy as np def sketch_style(img): gray0 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 转换为灰度图像 height, width = gray0.shape # 获取图像的高度和宽度 # 创建一个与原图大小相同的全黑图像 img2 = np.zeros((height, width), dtype=np.uint8) # 修正语法错误,添加图像叠加 gray1 = cv2.addWeighted(gray0, -1, img2, 0, 255, dtype=cv2.CV_8U) # 高斯滤波 gray1 = cv2.GaussianBlur(gray1, (11, 11), 0) # 再次叠加图像 dst = cv2.addWeighted(gray0, 0.9, gray1, 0.6, 0) return dst # 返回处理后的图像 def main(): img_path = 'liu.jpg' img = cv2.imread(img_path) # 检查图片是否正确加载 if img is None: print(f"Error: Unable to load image at {img_path}") return sketch_img = sketch_style(img) # 调用素描风格函数 # 显示原图和处理后的素描图 cv2.imshow("Original Image", img) cv2.imshow("Sketch Style Image", sketch_img) # 等待任意按键,并添加小延迟以确保窗口更新 cv2.waitKey(1) # 等待用户按键后关闭所有窗口 cv2.waitKey(0) cv2.destroyAllWindows() if __name__ == '__main__': main()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。