如何解决如何将黑色像素转换为白色,将白色转换为黑色以用于 Sobel 过滤器 Javascript
我正在研究 sobel 文件管理器。为此,我将以下代码作为参考。 Sobel Reference Code.
使用此代码,我得到白色的 sobel 边缘,它的范围和图像的其余部分为黑色。我试图获得黑色的 sobel 边缘,它的范围和图像的其余部分为白色。为此,我尝试更改以下循环,但没有成功。
for (y = 0; y < height; y++) {
for (x = 0; x < width; x++) {
var pixelX = (
(kernelX[0][0] * pixelAt(x - 1,y - 1)) +
(kernelX[0][1] * pixelAt(x,y - 1)) +
(kernelX[0][2] * pixelAt(x + 1,y - 1)) +
(kernelX[1][0] * pixelAt(x - 1,y)) +
(kernelX[1][1] * pixelAt(x,y)) +
(kernelX[1][2] * pixelAt(x + 1,y)) +
(kernelX[2][0] * pixelAt(x - 1,y + 1)) +
(kernelX[2][1] * pixelAt(x,y + 1)) +
(kernelX[2][2] * pixelAt(x + 1,y + 1))
);
var pixelY = (
(kernelY[0][0] * pixelAt(x - 1,y - 1)) +
(kernelY[0][1] * pixelAt(x,y - 1)) +
(kernelY[0][2] * pixelAt(x + 1,y - 1)) +
(kernelY[1][0] * pixelAt(x - 1,y)) +
(kernelY[1][1] * pixelAt(x,y)) +
(kernelY[1][2] * pixelAt(x + 1,y)) +
(kernelY[2][0] * pixelAt(x - 1,y + 1)) +
(kernelY[2][1] * pixelAt(x,y + 1)) +
(kernelY[2][2] * pixelAt(x + 1,y + 1))
);
var magnitude = Math.sqrt((pixelX * pixelX) + (pixelY * pixelY))>>>0;
sobelData.push(magnitude,magnitude,255);
}
}
如何获得黑色边缘和白色像素的其余部分?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。