在OpenCV中将图像转换为彩色铅笔草图

时间:2012-05-15 06:22:33

标签: c++ c opencv image-processing

我想使用OpenCV将图像转换为彩色铅笔草图。我已阅读页面I want to convert an image into pencil sketch in OpenCV 我寻求的效果就像http://www.showandtell-graphics.com/photosketch.html 我用代码

来使用颜色躲闪
b_d = (b_2==255? 255: min(255, b_1*255 /(255- b_2)));        
g_d = (g_2==255? 255: min(255, g_1 *255/(255- g_2)));             
r_d = (r_2 ==255? 255: min(255, r_1 *255/(255- r_2)));  

看起来效果不是很好。 PLS帮助。

1 个答案:

答案 0 :(得分:7)

整个程序在您提供的链接中详细说明,因此您需要3张图片才能达到此效果。

制作原始图片的副本并将其转换为grayscale

制作灰度图像的副本并invert此图像。

此时,图像#1 是原始图像,图像#2 是灰度,图像#3 是反转图像。

然后,将 color dodge 应用于#3 (将其设为白色)和execute the blur。仅此一项就可以获得灰度的铅笔素描效果。

如果您想要将最终结果着色,则必须使用图像#1 blend图像#3。

寻找有关混合的信息?查看thisthisthis