我正在使用位图图像在 Java 中实现中值滤波器。我正在使用以另一种编程语言实现的算法,然后将其转换为 Java 用于我的实现。我不明白的算法部分如下:
for(int x = 0; x < w; x++)
for(int y = 0; y < h; y++)
{
int n = 0;
//set the color values in the arrays
for(int filterX = 0; filterX < filterWidth; filterX++)
for(int filterY = 0; filterY < filterHeight; filterY++)
{
int imageX = (x - filterWidth / 2 + filterX + w) % w;
int imageY = (y - filterHeight / 2 + filterY + h) % h;
red[n] = image[imageX][imageY].r;
green[n] = image[imageX][imageY].g;
blue[n] = image[imageX][imageY].b;
n++;
}
这是中值算法的链接
我自己实现了以下代码,但我认为它不正确。如果有人可以帮助我,我将不胜感激。
for(int x = 0; x < width; x++)
{
for(int y = 0; y < height; y++)
{
int n = 0;
for(int filterX = 0; filterX < filterWidth; filterX++)
for(int filterY = 0; filterY < filterHeight; filterY++)
{
pixel = image.getPixel(x,y);
A = (pixel>>24) & 0xFF;
R = (pixel>>16) & 0xFF;
G = (pixel>>8) & 0xFF;
B = pixel & 0xFF;
RArray[n] = R;
GArray[n] = G;
BArray[n] = B;
n++;
}