我想用兩個RGB值比較兩個圖像。使用RGB值比較兩張圖像。 (Java)
下面的代碼爲未過濾和已過濾的圖像提取相同的RGB值。我希望兩個圖像的值不同。 (未經過濾和過濾已預先定義)。這個想法是,兩個圖像之間的差異越大(過濾前後)越差的過濾圖像。
由於我的結果,我期望兩組不同的RGB值(1代表未過濾,1代表已過濾)。我得到兩組RGB值,但是,兩者是相同的。
我正在創建一個色盲模擬器,並且想要比較兩者的值。以下是「正常」視覺圖像和「色盲」視覺圖像的示例。
Unfiltered Image | Filtered Image
filteredImage = unfilteredImage = Img;
...
ImageDisplay = new JLabel(new ImageIcon(filteredImage));
...
private void TypeButtonPressed()
{
filteredImage(GetType());
}
...
int GetType()
{
int type = 0;
for (int i=0; i<numberOfTypes; i++)
{
JToggleButton TypeButton = TypeButtons[i];
if (TypeButton.isSelected()) type = i;
}
TypeListener.SetType(type);
return type;
}
...
BufferedImage unfiltered = unfilteredImage;
BufferedImage filtered = filteredImage;
//unfilteredImage
int ufwidth = unfiltered.getWidth();
int ufheight = unfiltered.getHeight();
Color unfilteredRGBValue = new Color(unfiltered.getRGB(ufwidth/2, ufheight/2));
int ufred = unfilteredRGBValue.getRed();
int ufgreen = unfilteredRGBValue.getGreen();
int ufblue = unfilteredRGBValue.getBlue();
System.out.println("Unfiltered Red: " + ufred);
System.out.println("Unfiltered Green: " + ufgreen);
System.out.println("Unfiltered Blue: " + ufblue);
System.out.println("Unfiltered Score: " + ufred + ufgreen + ufblue);
//filteredImage
int fwidth = filtered.getWidth();
int fheight = filtered.getHeight();
Color filteredRGBValue = new Color(filtered.getRGB(fwidth/2, fheight/2));
int fred = filteredRGBValue.getRed();
int fgreen = filteredRGBValue.getGreen();
int fblue = filteredRGBValue.getBlue();
System.out.println("Filtered Red: " + fred);
System.out.println("Filtered Green: " + fgreen);
System.out.println("Filtered Blue: " + fblue);
System.out.println("Filtered Score: " + fred + fgreen + fblue);
謝謝!
Ed。
什麼是你的問題? – khelwood
當我運行代碼時,我得到了與過濾和未過濾圖像相同的RGB值。我想知道是否有人可以看到爲什麼? – eamuldowne
在上面編輯你的問題,指定你想要發生的事情,以及實際發生的事情 – khelwood