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

4
1个回答

8

整个过程在您提供的链接中详细说明,所以你需要三张图片来实现这个效果。

复制原始图像并将其转换为 灰度图

复制灰度图像并 反转 此图像。

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

然后,对图像 #3 应用 颜色减淡 (使其变白)并 执行模糊处理。这样做就能在灰度图像中得到铅笔素描效果。

如果您想让最终结果有颜色,您需要将图像#3与图像#1混合
寻找混合相关的信息?请查看此处, 此处此处

你的意思是:1. cvCvtColor(source_img, gray_img, CV_BGR2GRAY); 2. cvNot(gray_img, imgtemp); 3. 执行dodge操作,如color_dodge(dst_img, gray_img, imgtemp); 4. cvSmooth(dst_img, result_img, CV_GAUSSIAN)????? 如何解决这些图像之间的通道问题?我的意思是灰度图像的通道数为1。 - Yang
@karlphillip:这个“dodge”操作在数学上是什么意思(对于灰度图像和彩色图像)? - Abid Rahman K
@karlphillip - 我没有使用openCV,但是这个方法可以应用于普通的Java代码吗?我对颜色减淡感到困惑。你用哪两张图片进行颜色减淡?是图像#2和图像#3吗?如果我使用它们,我会得到全白色的图像吗? - NoviceMe
@NoviceMe 颜色减淡混合模式通过反转顶部图层来除以底部图层。根据原始链接,这些是:彩色图像和反转图像。 - karlphillip
这个程序做出的效果并不像https://play.google.com/store/apps/details?id=com.dumplingsandwich.pencilsketch中展示的那么好。我想要完全一样的素描效果。所以请帮帮我。 - Denny Sharma
如果有人最终组合完整的代码,请发布它。 - scottmrogowski

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接