我正在尝试计算灰度图像的区域,我知道如果它是缓冲图像我可以使用getRGB(),但我使用的是工具包,因此它是一个int图像。我只是想问一下如何获得像素值?我在下面加了我的代码
import iptoolkit.*;
public class FindArea {
public static void main(String[] args) {
String imageDir = "C:/Users/John/Dropbox/finalYear/Project/Leaves/";
MainWindow mw = new MainWindow();
int area = 0;
IntImage src = new IntImage(imageDir + "bg7.jpg", 256, 256);
src.displayImage(); //displays the image in a window
for (int row = 0; row <= src.getRows(); row++)
{
for (int col=0; col <= src.getCols(); col++)
{
//if(src.pixels[row][col] >= 0)
area++;
}
}
System.out.print("The area of the leaf is:" +area);
}
答案 0 :(得分:0)
我相信要记住RGB值中的位是这样排序的: 8位R | 8位G | 8位B 但它还取决于您使用的图像类型。 使用一些位运算符,如shift&lt;&lt;和&gt;&gt;并使用和运算符&amp;。
屏蔽该值答案 1 :(得分:0)
int pixel = src.pixels[row][col];
int red = (pixel & 0x00ff0000) >> 16;
int green = (pixel & 0x0000ff00) >> 8;
int blue = pixel & 0x000000ff;
// and the Java Color is ...
Color color = new Color(red,green,blue);
基于this的BufferedImage,但原理相同。