如何使用 JavaScript 将过滤器 backgroup 更改为白色

问题描述

我正在研究 JavaScript 过滤器。我正在实现 Sobel 过滤器,其代码如下 https://jsfiddle.net/sacheie/c91bzwt5/8/ 。 在这里,我得到黑色背景和白色边缘,但在我预期的输出中,我需要白色背景和黑色边缘。我在 sobel 方法中尝试了一些更改,但它对我不起作用。有什么办法可以达到我的预期输出吗?

function sobel(img,x,y) {
    var gradX = 0;
    var gradY = 0;

    gradX += pxlValue(img,x - 1,y - 1) * -1;
    gradX += pxlValue(img,y + 0) * -2;
    gradX += pxlValue(img,y + 1) * -1;
    gradX += pxlValue(img,x + 1,y - 1) * 1;
    gradX += pxlValue(img,y + 0) * 2;
    gradX += pxlValue(img,y + 1) * 1;

    gradY += pxlValue(img,y - 1) * -1;
    gradY += pxlValue(img,x + 0,y - 1) * -2;
    gradY += pxlValue(img,y + 1) * 1;
    gradY += pxlValue(img,y + 1) * 2;
    gradY += pxlValue(img,y + 1) * 1;

    gradX /= 9;
    gradY /= 9;

    return Math.sqrt(Math.pow(gradX,2) + Math.pow(gradY,2));
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)