【问题标题】:convert an image into color pencil sketch in OpenCV在 OpenCV 中将图像转换为彩色铅笔素描
【发布时间】:2012-05-15 06:22:32
【问题描述】:

我想使用 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)));  

看起来效果不太好。 请帮忙。

【问题讨论】:

    标签: c++ c opencv image-processing


    【解决方案1】:

    整个过程在你给我们的链接中有详细说明,所以你需要3张图片来达到这个效果。

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

    复制灰度图像和invert此图像。

    此时,image#1为原图,image#2为灰度图,image#3为倒置图。

    然后,将 color dodge 应用到图像 #3(使其变为白色)和 execute the blur。仅此一项即可为您提供灰度铅笔素描效果。

    如果您希望对最终结果进行着色,则必须将blend 图像#3 与图像#1。

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

    【讨论】:

    • 你的意思是:1.cvCvtColor(source_img, gray_img, CV_BGR2GRAY);2.cvNot(gray_img, imgtemp); 3.像color_dodge(dst_img, gray_img, imgtemp)一样执行闪避; 4.cvSmooth(dst_img,result_img,CV_GAUSSIAN)??????如何解决这些图像之间的通道问题?我的意思是灰色的通道是1
    • @karlphillip : 这是什么闪避操作,数学上(灰度图像和彩色图像)
    • @karlphillip - 我没有使用openCV,但可以应用于常规java代码吗?我对颜色闪避感到困惑。您使用哪两个图像进行颜色减淡?是图像#2 和图像#3 吗?如果我使用那些我得到全白没有图像?
    • @NoviceMe 颜色减淡混合模式将底层除以反转顶层](en.wikipedia.org/wiki/Blend_modes#Dodge_and_burn)。根据original link,分别是:彩色图像和倒置图像。
    • 这变得不如在play.google.com/store/apps/…中显示。我正是想要这种类型的草图。所以请帮助我
    猜你喜欢
    • 2011-08-06
    • 1970-01-01
    • 2012-01-27
    • 1970-01-01
    • 2015-10-07
    • 2019-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多