Bonsoir tout le monde,
voilà j'essaye de faire la binarisation d'une image mais là j y arrive pas :
voici mon code et l'erreur qu'il m'affiche:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
 
import java.awt.Graphics;
import java.io.IOException;
import java.io.File;
import javax.media.jai.JAI;
import javax.media.jai.PlanarImage;
import javax.media.jai.RenderedOp;
import javax.swing.JFileChooser;
 
public class Binarisation extends javax.swing.JFrame {
 
 private void openbuttonActionPerformed(java.awt.event.ActionEvent evt) {                                           
        fileopen.addChoosableFileFilter(filter);
 
        int return_value = fileopen.showOpenDialog(this);
 
        if (return_value == JFileChooser.APPROVE_OPTION) {
            file_input = fileopen.getSelectedFile();
            System.out.println(file_input);
        }
        try {
            inputimage = ImageIO.read(file_input);
            inputimage = inputimage.getScaledInstance(256,256,Image.SCALE_SMOOTH);
            repaint();
        } catch(IOException e) {
            System.out.println("ERROR");
        }
}                                          
 
private void processActionPerformed(java.awt.event.ActionEvent evt) {                                        
        width = inputimage.getWidth(null);
        height = inputimage.getHeight(null);
 
       buff_red = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
        Graphics r = buff_red.getGraphics();
        r.drawImage(inputimage, 0, 0, null);
        r.dispose();
 
        process_red = new int[width*height];
        counter = 0;
        for(int i = 0; i < 256; i++) {
            for(int j = 0; j < 256; j++) {
                int clr = buff_red.getRGB(j, i);
                int red = (clr & 0x00ff0000) >> 16;
                red = (0xFF<<24)|(red<<16)|(red<<8)|red;
                process_input[counter] = clr;
                process_red[counter] = red;
                counter++;
 
 
 
 
            }
        }
 
 
        repaint();      }}
l'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Exception in thread "main" java.lang.IllegalArgumentException: operation "ColorConvert" requires 1 source object(s).
	at javax.media.jai.JAI.createNS(JAI.java:1087)
	at javax.media.jai.JAI.create(JAI.java:973)
	at javax.media.jai.JAI.create(JAI.java:1424)
	at Test2.main(Test2.java:33)
Merci de bien voulaoir m'aider ou bien de m'indiquer une autre solution pour faire la binarisation
Cordialement,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Exception in thread "main" java.lang.IllegalArgumentException: operation "ColorConvert" requires 1 source object(s).
	at javax.media.jai.JAI.createNS(JAI.java:1087)
	at javax.media.jai.JAI.create(JAI.java:973)
	at javax.media.jai.JAI.create(JAI.java:1424)
	at Test2.main(Test2.java:33)