2017-06-11 61 views
-1

我想編寫一個java程序,以便當我捕捉到魔方的任何一個面的圖像時,它會告訴哪個面上出現了哪種顏色。我不想使用任何預先編寫的庫/ api。我想自己寫代碼。我想問我應該怎麼做....我的意思是步驟。 在此先感謝!如何處理圖像中的信息?

回答

1

您可以在時間

 img = ImageIO.read(new File("/mydir/pic.png")); 
    for (int y = 0; y < img.getHeight(); y++) { 
     for (int x = 0; x < img.getWidth(); x++) { 
      int rgb = img.getRGB(x, y); 
      if (rgb == Color.RED.getRGB()) { 
       //Do stuff 

      } else if (rgb == Color.GREEN.getRGB()){ 
       //Do more stuff 
      } 

     } 
    } 
0

做這樣的事情是分析一個像素。如果圖像中的立方體的臉的大小是可變的,那麼它不是一件容易的事。否則,你可以使用@ urag的代碼,而不是檢查所有的像素,只需檢查一行中的6個像素,從第一個瓦片的第一個中心開始,以瓦片寬度的偏移量進行檢查。

+0

所有立方體上的綠顏色不會相同。如何處理這種情況?此外,程序可能會拾取不在立方體上的顏色(與立方體一起出現在圖像中的其他對象)如何繼續? – thapro

+0

用於檢查綠色,而不是檢查確切的綠色,您可以查找與所有類型的綠色相關的rgb值的範圍。對於第二個問題,請嘗試捕獲立方體的圖像,否則我認爲您需要計算機視覺和機器學習方面的知識才能從圖像中找到您的立方體。 – WSS