0

JPEGでRGB画像を使用しています。この画像をピクセルに変換して、テキストファイルに表示したいと思います。これを行う方法?

public static int[][][] getPixelData(Image image) {

    // get Image pixels in 1D int array
    int width = image.getWidth(null);
    int height = image.getHeight(null);

    int[] imgDataOneD = imageToPixels(image);

private static int[] imageToPixels(Image image) {

    int height = image.getHeight(null);
    int width = image.getWidth(null);

    int pixels[] = new int[width * height];

    PixelGrabber grabber = new PixelGrabber(image, 0, 0, width, height, pixels, 0, width);

    try {
        grabber.grabPixels();
    } catch (InterruptedException e) {
    }

    return pixels;
}

この情報をシーケンスベクトル形式としてテキストファイルに保存するにはどうすればよいですか?

4

2 に答える 2

0

整数をコンマ区切りのリストとして保存することもできます。

画像を復元できるように、画像の幅も必ず保存してください。

于 2013-03-13T09:31:40.603 に答える
0

次のようなものを使用してください。これがお役に立てば幸いです

import java.io.*;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;

public class ImageToText {
    public static void main(String args[]) throws IOException {
        File file = new File("your file path.jpg");
        BufferedImage image = ImageIO.read(file);
        // Getting pixel color by position x=100 and y=40

        for (int i = 0; i < image.getHeight(); i++) {
            for (int j = 0; j < image.getWidth(); j++) {
                int color = image.getRGB(j, i);

                // You can convert the colour to a readable format by changing
                // to following string. It is a 6 character hex
                // String clr = Integer.toHexString(color).substring(2);

                // Write this int value or string value to the text file
                // Add a comma or any other separator. Since it is always 6
                // characters long you can avoid using comma. It will save some
                // space.
            }
            // add a new line
        }
    }
}

テキストファイルを読んでデータを取得するために、自分のアルゴリズムについて考えることができます。:-)

于 2013-03-13T10:12:58.000 に答える