簡體   English   中英

我的圖像去噪方法有什么問題?

[英]What am I doing wrong with my image denoising method?

我一直在說明利用中值濾波降噪我的形象這篇文章

在我完成此操作之前,我只進行了一次操作。 結果很大程度上是褪色的圖像,如下所示。

我的代碼的最低工作版本如下:

import java.awt.image.BufferedImage;
import java.util.Arrays;

public class Denoise {

public static void main(String args[]) {
        String directory = "C:\\Users\\Speedy Octopus\\Desktop\\Place Car Folders Here\\Original\\15.JPG";
        BufferedImage image = ImageUtility.loadImage(directory);

    for (int iterationCount = 0; iterationCount < 1; iterationCount++){ 
        for (int i = 1; i < image.getWidth()-1; i++) {
            for (int j = 1; j < image.getHeight()-1; j++) {
                image.setRGB(i, j, getMedianPixelValue(image, i, j));
            }
        }

    }
    String directory2 = "C:\\Users\\Speedy Octopus\\Desktop\\Place Car Folders Here\\Original\\152.JPG";
    Controller.saveImage(image, directory2);
}

public static int getMedianPixelValue(BufferedImage image, int i, int j) {
    int[] surroundingPixels = new int[8];

    int iter = 0;
    for (int q = i-1; q<=i+1; q++) {
        for (int r = j-1; r<=j+1;r++) {
            if (!(q == i && r == j)) {
                surroundingPixels[iter] = image.getRGB(q, r);
                iter++;
            }
        }
    }

    Arrays.sort(surroundingPixels);

    int medianIndex = surroundingPixels.length/2;
    int medianPixel = surroundingPixels[medianIndex];

    return medianPixel;
}

} 這是我的開始形象

這是我的結果

正如我在此問題回答的那樣, 使用java getRGB 在圖像上應用均值濾鏡 “返回默認RGB顏色模型(TYPE_INT_ARGB)中的整數像素”,因此您必須在進行任何比較之前提取並刪除alpha(A)分量:

pixel=image.getRGB(i, j)&0x00ffffff;

在媒體分類等

您可以提取R,G和B並分別進行處理,也可以對整個像素RGB進行比較-您可以采用任何一種方法進行實驗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM