十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章主要介绍OpenCV实现图片漫画效果的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
网站建设哪家好,找创新互联建站!专注于网页设计、网站建设、微信开发、成都微信小程序、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了华蓥免费建站欢迎大家使用!我们随手拍摄的照片,很难达到摄影师的水准,因此不管是手机上还是电脑内,都有一些软件可以添加特效让照片更好看,手机拍摄时也有即时的美化效果。不过我比较好奇漫画特效,但是一直在网上看到别人的成品而找不到针对性的软件,因此只有自己实现一下,虽然跟专业的还有差距,但效果还不错。
使用 OpenCV,采用 Python 实现。
对比现实中的画画,一般是先画出边缘轮廓使整体规划好,再填充颜色使其完整,因此在这里我们也采用这种方式。不过对图片直接操作与从零开始着笔不一样,要将原始图片进行两次不同的处理,再将处理后的两个图片叠加。
边缘轮廓
漫画中不管是人物还是风景,刻画的细节有限,因此需要把重要以及有特色的部分体现出来,数量要适当。
轮廓通过四步操作:
import cv2 img = cv2.imread("example.jpg") img_copy = img # 灰度处理 img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 平滑操作,去除噪声 img_blur = cv2.medianBlur(img_gray, 5) # 通过阈值提取轮廓 img_edge = cv2.adaptiveThreshold(img_blur, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, blockSize=9, C=3) # 将灰度图片变成 3 通道,用于后续合并 img_edge = cv2.cvtColor(img_edge, cv2.COLOR_GRAY2BGR)