我非常適合數字圖像處理和編程的初學者。我正在嘗試使用光柵來查找圖像的平均值。說實話,這是在黑暗中真正的刺,但我真的迷失在這裏做什麼。查找圖像Java的平均值
我的代碼目前沒有返回任何內容,我不確定它是否甚至在做任何事情。我對它正在做什麼的解釋是,讀取圖像文件,然後使用柵格根據高度和寬度共同提取該圖像的細節。我希望它能夠在控制檯上輸出平均值。
所以有人可以告訴我我做錯了什麼,爲什麼我的代碼沒有返回圖像的意思?我一直在挖掘資源來嘗試和學習,但與圖像處理相關的任何東西似乎都不適合新手,而且我發現它很難。因此,如果任何人有任何可以開始的地方,我們將不勝感激。
最終,我想計算一個圖像上的平均值,然後我想要針對其他圖像的文件目錄運行該圖像。這一點就是根據平均值查看哪些圖像最相似。但我覺得我有點偏離自己想去的地方。
這裏是我的代碼
import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.awt.image.Raster;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class calculateMean {
static BufferedImage image;
static int width;
static int height;
public static void main(String[] args) throws Exception{
try{
File input = new File("C:\\Users\\cbirImages\\jonBon2.jpg");
image = ImageIO.read(input);
width = image.getWidth();
height = image.getHeight();
}catch (Exception c){}
}
private double sum;
public double imageToCalculate(){
int count = 0;
for(int i=0; i<height; i++){
for(int j=0; j<width; j++){
count++;
Raster raster = image.getRaster();
double sum = 0.0;
for (int y = 0; y < image.getHeight(); ++y){
for (int x = 0; x < image.getWidth(); ++x){
sum += raster.getSample(x, y, 0);
}
}
return sum/(image.getWidth() * image.getHeight());
}
}
System.out.println("Mean Value of Image is " + sum);
return sum;
}
}
感謝您的寶貴意見@gpasch – user1167596
您在哪裏調用imageToCalculate方法? –