【发布时间】:2017-09-18 18:32:28
【问题描述】:
我正在尝试使用 OpenCV 添加一些模糊笔触
如果我使用 cv.add 或 cv.addweighted,我只得到了一半的红色(看起来是粉红色),
但我希望红色覆盖底层图片,而不是混合。
如果我使用copyto或clone,我无法得到模糊边缘,那我应该怎么做呢??
【问题讨论】:
-
如果您不混合颜色,您将不会有任何模糊/柔和边缘效果,因为您将有背景或 100% 红色...
我正在尝试使用 OpenCV 添加一些模糊笔触
如果我使用 cv.add 或 cv.addweighted,我只得到了一半的红色(看起来是粉红色),
但我希望红色覆盖底层图片,而不是混合。
如果我使用copyto或clone,我无法得到模糊边缘,那我应该怎么做呢??
【问题讨论】:
您的画笔图像的背景是黑色的。如果您在 Photoshop 中将该笔刷图层的混合模式设置为 screen,则红色渐变将显示出来,黑色背景将变为透明。
这里有几个相关的帖子:
或者,如果您使用的是 OpenCV 3.0,您可以尝试使用 seamlessClone。
【讨论】:
我有一个技巧,只需将该区域复制到一个新垫子上,然后在新垫子上画一个圆圈并将其模糊,然后使用 addWeighted 将其与图像混合到我需要的任何 alpha 中。
Mat roi = myImage.submat(y-20, y+20, x-20, x+20);
Mat mix = roiB.clone();
Imgproc.circle(mix, new Point(20, 20), 12, color, -1);
Core.addWeighted(mix, alpha, roiB, beta, 0.0, mix);
Imgproc.GaussianBlur(mix, mix, new Size(21, 21), 0);
mix.copyTo(roiB);
【讨论】: