Unable to convolve src image

hallo,

ich wollte über ein Bild einen Weichzeichnungsfilter drüber laufen lassen. Warum kommt immer diese Exception? "Unable to convolve src image"

Java:
 float weight = 1.0f / 9.0f;
        float[] elements = new float[9];
        
        for (int i = 0; i < 9; i++) {
            elements[i] = weight;
        }

        try {
            Kernel myKernel = new Kernel(3, 3, elements);
            ConvolveOp op = new ConvolveOp(myKernel);
            img = op.filter(img, null);
        } catch (ImagingOpException e) {
            System.err.println("FEHLER: " + e.getLocalizedMessage());
        }
        this.repaint();

Danke

Edit: img = natürlich nicht null!
 

Developer_X

Top Contributor
Vom Weichzeichnen habe ich zwar noch nie was gehört, also das mit dem Kernel, aber vielleicht liegts hier dran:
Java:
img = op.filter(img, null);
An dem null. Ich weiß nicht.

Zeig doch mal die Exception, damit ich dir genauer helfen kann.

Developer_X
 
wenn ich statt null ein anderes bufferedimage nehme, funktionierts auch nicht.

Code:
java.awt.image.ImagingOpException: Unable to convolve src image
        at java.awt.image.ConvolveOp.filter(ConvolveOp.java:180)
        at imageeditorfiltertest.ImagePanel.weichzeichnen(ImagePanel.java:70)
        at imageeditorfiltertest.Filter.jButton5ActionPerformed(Filter.java:160)
        at imageeditorfiltertest.Filter.access$400(Filter.java:21)
        at imageeditorfiltertest.Filter$5.actionPerformed(Filter.java:91)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6263)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3255)
        at java.awt.Component.processEvent(Component.java:6028)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4630)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2475)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Zeile 70 ist eben genau die Zeile mit dem op.filter.

danke
 

Developer_X

Top Contributor
wenn ich statt null ein anderes bufferedimage nehme, funktionierts auch nicht.

Nein nein, ich meine das hier:
Java:
img = op.filter(img, null);
Einmal übergibst du ja IMG, aber das andere ist null.

Das habe ich in der API gefunden:
Code:
filter
public final BufferedImage filter(BufferedImage src,
                                  BufferedImage dst)Performs a convolution on BufferedImages. Each component of the source image will be convolved (including the alpha component, if present). If the color model in the source image is not the same as that in the destination image, the pixels will be converted in the destination.[B] If the destination image is null, a BufferedImage will be created with the source ColorModel.[/B] The IllegalArgumentException may be thrown if the source is the same as the destination.

Les das mal, also es gibt 2 BufferedImages die du übergeben musst. Eins hast du schon, das sry Image, das andere gibts du als null.

Da steht ja in der API, siehe markierter Text, wenn das Destination Image halt null ist, wird ein anderes Image... ausgegeben, aber keine Exception.

Ich würde einfach folgendes Vorschlagen, änder den Code mal so um, und Poste dann die Ausgabe, vielleicht ist es doch null.

Java:
if(img==null)
{
System.err.println("Das Image ist null");
System.exit(0);
}
float weight = 1.0f / 9.0f;
        float[] elements = new float[9];
        
        for (int i = 0; i < 9; i++) {
            elements[i] = weight;
        }
 
        try {
            Kernel myKernel = new Kernel(3, 3, elements);
            ConvolveOp op = new ConvolveOp(myKernel);
            img = op.filter(img, null);
        } catch (ImagingOpException e) {
            System.err.println("FEHLER: " + e.getLocalizedMessage());
        }
        this.repaint();

Dann werden wir ja sehen, ob das Image für den PC null ist oder nicht.

Poste mal die Ausgabe danach
 
hallo,

wenn ich deinen Code ausführe kommt immer noch als Ausgabe: FEHLER: Unable to convolve src image. Img ist also nicht null.

wenn ich nun schreibe:
Java:
if (img == null) {
            System.err.println("Das Image ist null");
            System.exit(0);
        }
        float weight = 1.0f / 9.0f;
        float[] elements = new float[9];

        for (int i = 0; i < 9; i++) {
            elements[i] = weight;
        }

        try {
            Kernel myKernel = new Kernel(3, 3, elements);
            ConvolveOp op = new ConvolveOp(myKernel);
            op.filter(img, imgtmp);
        } catch (ImagingOpException e) {
            System.err.println("FEHLER: " + e.getLocalizedMessage());
        }
        this.repaint();
ändert sich auch nichts. Immer noch der gleiche Fehler.

img wird so erzeugt:
Java:
try {
            img = ImageIO.read(new File("c:\\test4.jpg"));
        } catch (Exception e) {
            System.out.println("FEHLER! " + e.getLocalizedMessage());
        }
 
Update:

wenn ich zuerst das Bild in Graustufen konvertiere, kann ich es auch Weichzeichnen...

Java:
ColorSpace colorSpace = ColorSpace.getInstance(ColorSpace.CS_GRAY);
ColorConvertOp op = new ColorConvertOp(colorSpace, null);
img = op.filter(img, null);

sollte ich vielleicht vor dem Weichzeichnen irgendein ColorSpace model setzten? ;(
 

Marco13

Top Contributor
Da gibt's auch glaub' ich einen bug in der bugparade. Versuch' mal das Bild vorher in ein ARGB-Bild umzuwandeln
Code:
img = ImageIO.read(new File("c:\\test4.jpg"));
BufferedImage img2 = new BufferedImage(img.getWidth(), img.getHeight(), BufferedImage.TYPE_INT_ARGB);
img2.getGraphics().drawImage(img,0,0,null);
img = img2;
Wenn nicht, sag nochmal bescheid...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M SQL-Developer Installation: Unable to launch the Java Virtual Machine Located at path msvcr100.dll Allgemeine Java-Themen 1
A Eclipse - Fehler beim "RUN" - "Unable to Launch - The selection cannot be launched" Allgemeine Java-Themen 6
N GPIB - Fehler: Unable to open device Allgemeine Java-Themen 1
T jmf - Immer "Unable to handle fo rmat:" Allgemeine Java-Themen 2
M unable to create new native thread Allgemeine Java-Themen 6
I Error: Unable to realize com.sun.media.amovie.AMController Allgemeine Java-Themen 3
V Unable to pop operand off an empty stack Allgemeine Java-Themen 2
D unable to create new native thread Allgemeine Java-Themen 1
T Hilfe!!! Fehlermeldung... "unable..." Allgemeine Java-Themen 2
D Image bewegt sich nicht nach Klicken auf Button Allgemeine Java-Themen 15
Mozart53 JLabel nur meinen Text verschieben ohne Image Allgemeine Java-Themen 3
Y Wie bekomme ich durch getImage an das Image heran? Allgemeine Java-Themen 1
J jsch direktes streamen in ein image Allgemeine Java-Themen 11
A 2D-Grafik Einfachster Ansatz, um sich wiederholende Figur in einem 2D-Image zu erkennen Allgemeine Java-Themen 1
T 2D-Grafik Chart als Image erstellen Allgemeine Java-Themen 3
G Image in Shape wandeln Allgemeine Java-Themen 1
T Swing Image rotieren Allgemeine Java-Themen 1
I nach Image Load in ListView, kann Ordner nicht mehr gelöscht werden Allgemeine Java-Themen 1
C pfad vom Image ausgeben lassen Allgemeine Java-Themen 5
Bananabert Swing jtree : image als user object Allgemeine Java-Themen 2
M Image auslesen Allgemeine Java-Themen 2
G Pixelanzahl aus Raw Image Datei Allgemeine Java-Themen 1
H OCR und Image Processing Allgemeine Java-Themen 4
M Image für PDF nicht verfügbar - Runnable .jar Allgemeine Java-Themen 3
S BLOB Image in JSP anzeigen Allgemeine Java-Themen 5
BRoll Image RGB Werte auslesen und vergleichen Allgemeine Java-Themen 8
K Image zu BufferedImage konvertieren Allgemeine Java-Themen 9
K Image beim catchen ist immer null Allgemeine Java-Themen 9
X Image Processing libary für JavaSE und Android Allgemeine Java-Themen 2
Crashbreaker RCP-View Image öffnen und darstellen Allgemeine Java-Themen 7
S IMAGE ARRAY laden Allgemeine Java-Themen 6
B Image oder GridControl? Allgemeine Java-Themen 8
B Image Thinning Allgemeine Java-Themen 3
A Input/Output Buffered Image zu Byte Array und zurück konvertieren Allgemeine Java-Themen 4
F Datentypen Floppy-Image-Dateisystem Allgemeine Java-Themen 5
F Image - Ausschnitt bekommen Allgemeine Java-Themen 3
J Teil eines Image/ImageIcon zeichnen Allgemeine Java-Themen 2
H image in jtextarea/JLabel einbinden... Allgemeine Java-Themen 4
Aigu Bilderkennung / Image Analysis Allgemeine Java-Themen 2
M Nochmal I-Frame zu Image Allgemeine Java-Themen 4
M JPEG Image komprimieren Allgemeine Java-Themen 2
M Probleme mit Image Extraction aus PDF Allgemeine Java-Themen 2
V Image laden - URL über ClassLoader ermitteln Allgemeine Java-Themen 2
G sun.awt.image.OffScreenImage Serializable machen Allgemeine Java-Themen 5
T Image in gif umwandeln Allgemeine Java-Themen 14
G itext größe von image Allgemeine Java-Themen 2
T JPanel to Image? Allgemeine Java-Themen 6
K Image Resizer Allgemeine Java-Themen 4
D Image runterscalieren, aber schlechte Quali? Allgemeine Java-Themen 3
L Buffered Image teilweise zeichnen Allgemeine Java-Themen 6
P Image erzeugen Allgemeine Java-Themen 7
B Image libraries Allgemeine Java-Themen 3
MQue Image über Komponente Allgemeine Java-Themen 3
P Image auf JPanel auf JFrame Allgemeine Java-Themen 3
P Image auf einem Panel mit null-Layout Allgemeine Java-Themen 8
E Image unterscheiden Allgemeine Java-Themen 16
E Image auf einem JLabel darstellen Allgemeine Java-Themen 3
F BufferedImage -> Image Allgemeine Java-Themen 4
E Wie bekomme ich mein Image in das Fenster Allgemeine Java-Themen 2
T Muster/Zeichen/Texterkennung auf einem Image Allgemeine Java-Themen 9
L Linien, Recktecke und Elipsen zeichnen ohne Image Allgemeine Java-Themen 2
T Disk Image Library (iso,mdf,nrg,bin) Allgemeine Java-Themen 6
S KeyListener! Image Problem! Allgemeine Java-Themen 2
S Image als Background Allgemeine Java-Themen 5
B Image(png) versenden Allgemeine Java-Themen 3
N Image -> cropImage Allgemeine Java-Themen 3
T Image mithilfe von DirectColorModel und Pixel erstellen Allgemeine Java-Themen 3
G Image in der Größe ändern Allgemeine Java-Themen 2
C probleme mit image Allgemeine Java-Themen 4
C Pixelfarbe aus einem image auslesen Allgemeine Java-Themen 6
M Image Skalieren Allgemeine Java-Themen 23
D ByteArray für Image-Icon laden. Allgemeine Java-Themen 4
T iso datei (Image) mit Java einlesen und Inhalt entpacken Allgemeine Java-Themen 3
O Image mit transparenten farben wie bei *.GIF ? Allgemeine Java-Themen 3
B Image#getScaledInstance & Graphics2D#drawImage ClassCast Allgemeine Java-Themen 3
H Speicher freigeben klappt nicht bei Image Objekten, warum? Allgemeine Java-Themen 8
H Skalieren von Image -> java.lang.OutOfMemoryError - WARUM Allgemeine Java-Themen 18
T Auf ein Image geklickt Allgemeine Java-Themen 13
J ISO image erzeugen Allgemeine Java-Themen 3
J Wie mache ich den Hintergrund einer Image durchsichtig? Allgemeine Java-Themen 7
G Aus JPanel Image Hohlen Allgemeine Java-Themen 3
D BufferedReader in image umwandeln Allgemeine Java-Themen 3
S Image Datei serializieren Allgemeine Java-Themen 3
G JFrame nimmt mein Image nicht Allgemeine Java-Themen 2
F Image als GIF oder JPEG abspeichern Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben