我正在尝试为SVG Morphology过滤器实现扩张过滤器。
文档说扩张(或侵蚀)内核是一个宽度为2 * x半径和高度为2 * y半径的矩形。在膨胀中,输出像素是输入图像的核矩形中相应的R,G,B,A值的单独分量最大值。
https://www.w3.org/TR/SVG/filters.html#feMorphologyElement
在这种情况下,我无法确切知道内核应该是什么。你能指点一下吗?
它真的等同于为输入图像中的每个像素找到下面区域的局部最大值吗?
int startX = std::max( pixelCordX - radiusX, 0 );
int endX = std::min( pixelCordX + radiusX, width - 1 );
int = std::max( pixelCordY - radiusY, 0 );
int endY = std::min( pixelCordY + radiusY, height - 1 );
outputPixel( pixelCordX , pixelCordY ) = ComputeMaxMin( image[][], startX, endX, startY, endY );
答案 0 :(得分:2)
循环遍历矩形中的所有像素,跟踪每个R,G,B和A的最大值。将每个分量的最大值组合成单个颜色值,并使其成为中心像素颜色。 / p>