2012-03-02 5 views
-1

Я создаю программу для вычисления psnr (пиковое отношение сигнал-шум) двух изображений. Я получаю следующее сообщение об ошибке при компиляции код ниже:не может найти символьную переменную ArrayIO

Psnr.java:35: cannot find symbol 
symbol : variable ArrayIO 
location: class Psnr 
ArrayIO.readByteArray(args[2], img1, nrows, ncols); 

Psnr.java

import java.io.*; 

public class Psnr { 

    public static double log10(double x) { 
    return Math.log(x)/Math.log(10); 
    } 

    public static void main (String[] args) { 
    int  nrows, ncols; 
    int  img1[][], img2[][]; 
    double peak, signal, noise, mse; 

if (args.length != 4) { 
    System.out.println("Usage: Psnr <nrows> <ncols> <img1> <img2>"); 
    return; 
} 
nrows = Integer.parseInt(args[0]); 
ncols = Integer.parseInt(args[1]); 
img1 = new int[nrows][ncols]; 
img2 = new int[nrows][ncols]; 
ArrayIO.readByteArray(args[2], img1, nrows, ncols); 
ArrayIO.readByteArray(args[3], img2, nrows, ncols); 

signal = noise = peak = 0; 
for (int i=0; i<nrows; i++) { 
    for (int j=0; j<ncols; j++) { 
    signal += img1[i][j] * img1[i][j]; 
    noise += (img1[i][j] - img2[i][j]) * (img1[i][j] - img2[i][j]); 
    if (peak < img1[i][j]) 
     peak = img1[i][j]; 
    } 
} 

mse = noise/(nrows*ncols); // Mean square error 
System.out.println("MSE: " + mse); 
System.out.println("SNR: " + 10*log10(signal/noise)); 
System.out.println("PSNR(max=255): " + (10*log10(255*255/mse))); 
System.out.println("PSNR(max=" + peak + "): " + 10*log10((peak*peak)/mse)); 
    } 
} 

Что мне нужно сделать, чтобы исправить программу?

ответ

1

ArrayIO не является классом из пакета java.io. Вы должны импортировать нужный пакет (import заявление) и добавить библиотеку в свой путь к классам (ArrayIO не является частью API Java)

+0

Что бы что быть? Кажется, я не могу найти его. –

+0

Не могу найти его слишком - я никогда не слышал о классе с именем «ArrayIO» для Java. Google тоже не помог ... Возможно, вы взяли/адаптировали код из другого источника, пожалуйста, посмотрите там. Может, это был другой язык программирования? –

+0

Я думаю, что это был C, да. –

0

It's here

Вы взяли кого-то другого»Java-код

+0

Хотя это теоретически может ответить на вопрос, [было бы предпочтительно] (http://meta.stackexchange.com/q/8259) включить сюда основные части ответа и предоставить ссылку для справки. –

Смежные вопросы