user3409976
user3409976

Reputation: 31

ImageJ library is failing to open tiff images

I have written below code to open one tiff image. Actually I am trying to use imageJ (ImagePlus) library in one of out java application. But it is giving error message.

"ImageJ cannot open TIFF files compressed in this fashion (4)"

Any help would be greatly appreciated.

package com.csc

import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import javax.imageio.*;
//import javax.imageio.ImageIO;
import ij.ImagePlus;

public class GetPixelCoordinates {

//int y, x, tofind, col;
/**
 * @param args the command line arguments
 * @throws IOException  
 */
    public static void main(String args[]) throws IOException {
        try {
            //read image file

            ImagePlus img = new ImagePlus("C:\\javaCode\\TestIJ\\check_1.tiff");

            //write file
            FileWriter fstream = new FileWriter("C:\\javaCode\\TestIJ\\log.txt");
            BufferedWriter out = new BufferedWriter(fstream);

            //find cyan pixels
            for (int y = 0; y < img.getHeight(); y++) {
                for (int x = 0; x < img.getWidth(); x++) {

                    int c[] = img.getPixel(x,y);

                  //  Color color = new Color()
                    int redValue = c[0];
                    int greenValue = c[1];
                    int blueValue = c[2];


                     if (redValue < 30 &&greenValue >= 225 && blueValue >= 225) {
                         out.write("CyanPixel found at=" + x + "," + y);
                         out.newLine();

                     }
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Upvotes: 2

Views: 5615

Answers (1)

Jan Eglinger
Jan Eglinger

Reputation: 4090

TIFF images can be compressed in various ways. ImageJ can only open some of them (see also the source code). Try opening the file using the Bio-Formats library and its helper class BF:

import ij.ImagePlus;
import loci.plugins.BF;

/* ... */

ImagePlus imp = BF.openImagePlus("path/to/your/image.tiff"); 

Upvotes: 2

Related Questions