有人可以告訴我如何訪問圖像的所有像素,以便能夠構建該圖像的直方圖?訪問圖像的像素
Q
訪問圖像的像素
3
A
回答
4
您可以使用
java.awt.image.BufferedImage image = ImageIO.read("image.gif");
int[] samples = image.getData().getPixel(x, y, null);
// or the pixel converted to the default RGB color model:
int rgb = image.getRGB(x, y)
我覺得samples
你從有RGB值,但你必須檢查......
1
如果你可以使用JAI它有自己的選擇產生Histograms。
1
下面是一些可能有所幫助的示例代碼 - 請測試它(它似乎適用於我,但您永遠不知道!)。
這個直方圖沒有被均衡,或者這裏沒有任何東西,只是從字面上計算每個帶中特定值的像素。
我相信樂隊(你需要檢查)是R,G,B +阿爾法的順序。
import java.awt.image.BufferedImage;
import java.awt.image.Raster;
import java.io.File;
import javax.imageio.ImageIO;
public class SimpleImageReader {
public static void main(String[] args) throws Exception {
// File f=new File(args[0]);
File f=new File("C:\\1.jpg");
BufferedImage img = ImageIO.read(f);
Raster r=img.getData();
int levels=256;
int bands=r.getNumBands();
int histogram[][]=new int[bands][levels];
for (int x=r.getMinX();x<r.getWidth();x++) {
for (int y=r.getMinY();y<r.getHeight();y++) {
for (int b=0;b<3;b++) {
int p=r.getSample(x, y, b);
histogram[b][p]++;
}
}
}
for (int b=0;b<histogram.length;b++) {
System.out.println("Band:"+b);
for (int i=0;i<histogram[b].length;i++) {
System.out.println("\t"+i+"="+histogram[b][i]);
}
}
}
}
相關問題
- 1. 使用cv2訪問圖像的像素
- 2. 銳化圖像 - 訪問相鄰像素
- 3. 訪問單個圖像像素,matlab
- 4. 如何訪問Android上的位圖圖像的像素?
- 5. 在OpenCV中訪問圖像的元素
- 6. 訪問SVG中的圖像元素URL
- 7. 訪問圖像
- 8. 訪問圖像
- 9. 訪問圖像
- 10. 訪問精靈的像素
- 11. Android:圖像像素問題
- 12. 如何從捕獲的圖像訪問/編輯像素C#
- 13. 快速訪問jpeg圖像的像素值
- 14. 如何訪問RGB圖像的每個像素值?
- 15. 訪問負像素值OpenCV
- 16. 快速像素訪問opencv
- 17. 高效地訪問像素
- 18. 訪問負像素值OpenCV
- 19. Android中的圖像像素問題?
- 20. 無法從灰度圖像訪問像素值
- 21. OpenCV積分圖像像素訪問錯誤
- 22. 如何訪問每一個圖像像素,MATLAB
- 23. Python圖像庫:無法訪問像素值
- 24. NotFoundHttpException試圖訪問圖像
- 25. 403訪問圖像時禁止訪問
- 26. 背景圖像像素化問題
- 27. Android Cocos2d Xoom圖像像素問題
- 28. 繪製位圖與不安全的每像素訪問結果爲空圖像
- 29. 訪問圖像表格
- 30. 如何訪問instagram圖像
你需要指定平臺 - J2ME,安卓,AWT VS鞦韆,J2SE等都有不同的圖像組件 – Will 2010-02-06 19:15:21
我使用的Java Swing – 2010-02-06 19:27:02