如何将文件名数组传递给以下方法:
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
方法根据主要感兴趣区域(ROI)对图像的适用度(...BufferedImage image);
)进行评分。
我正在寻找的是一种在文件名数组上运行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
}
这个可能吗?
答案 0 :(得分:3)
是的,这是可能的。
这是方法签名:
public static double getFitness(int x, int y, int r, File[] fileArray)
这是调用代码:
getFitness(1, 1, 1, imgList);
答案 1 :(得分:1)
刚刚传递数组?
public static double getFitness(int x, int y, int r, File[] files);
答案 2 :(得分:0)
您可以将参数类型指定为File [] fileArray
答案 3 :(得分:0)
你可以做到
File fileArray[] = new File[numberOfFiles];
然后指定一个计数器来存储在数组中,例如counter = 0
,并在每次将fileName添加到数组counter
时增加fileArray[counter] = img.getName(); counter++;
的值
然后以您想要的方法public static double getFitness(x, y, r, fileArray);