簡體   English   中英

Java - 數組和方法參數

[英]Java - Arrays and Method Parameters

如何將文件名數組傳遞給以下方法:

public static double getFitness(int x, int y, int r, BufferedImage image);

我目前有一個方法,它從給定的目錄創建一個文件名數組:

//Default image directory (to convert to greyscale).
static File dir = new File("images");
//Array of original image filenames.
static File imgList[] = dir.listFiles();

public static void processGreyscale(){
    if(dir.isDirectory()){
        for(File img : imgList){
            if(img.isFile()){
                //functions are carried out here.
            }
            else{
                                    //functions are carried out here.
            }
        }
    }
}

getFitness方法對圖像的適應度進行評分( ...BufferedImage image); )基於主要感興趣區域(ROI)。

我正在尋找的是一種在文件名數組上運行getFitness方法的方法; 這樣的事情:

public static double getFitness(int x, int y, int r, fileArray)

可以這樣做嗎?

更新:

謝謝大家的好建議; 但是,我應該提一下,如果改變傳遞的參數,我希望保持方法參數相同/不變,因為適應度函數受到影響(負面)。

有什么辦法可以在imgList[]所有文件/文件名上運行適應度函數嗎?

我希望的是這個:

public static double getFitness(int x, int y, int r, BufferedImage image){
    use filenames stored in imgList[] to take place of 'image'
    getFitness of `image`
    next image name
}

可能嗎?

對的,這是可能的。

這是方法簽名:

public static double getFitness(int x, int y, int r, File[] fileArray)

這是調用代碼:

getFitness(1, 1, 1, imgList);

剛傳遞數組?

public static double getFitness(int x, int y, int r, File[] files);

您可以將參數類型指定為File [] fileArray

你可以做File fileArray[] = new File[numberOfFiles]; 然后指定一個計數器來存儲在數組中,例如counter = 0並在每次將fileName添加到數組fileArray[counter] = img.getName(); counter++;遞增counter的值fileArray[counter] = img.getName(); counter++; fileArray[counter] = img.getName(); counter++;

然后在你想要的方法中發送數組public static double getFitness(x, y, r, fileArray);

暫無
暫無

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

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