Java Opencv-2.4.4 ve GUI ile bir uygulama geliştiriyorum. Sorun şu ki, herhangi bir çözüm bulamıyorum, bu da işlenmiş görüntünün (Mat nesnesinde kaydedilen) java swing GUI'ye nasıl yazdırılacağını gösterir. Bu an için bu hantal bir çözüm kullanıyorum:Opencv java - GUI'ye Resim Yükle
javax.swing.JLabel outputImage;
outputImage.setIcon(new javax.swing.ImageIcon("/home/username/Output.png"));
private void sliderStateChanged(javax.swing.event.ChangeEvent evt) {
.
.
Mat canny; // Here is saved what I want to plot
String filename = "/home/username/Output.png";
Highgui.imwrite(filename, canny); // write to disk
outputImage.setIcon(new ImageIcon(ImageIO.read(new File(filename)))); //update Icon
.
.
}
kullanıcı Ben diskte Output.png üzerine ve diskten yeni görüntü ile JLabel güncellemek zorunda GUI bazı değerleri, girişleri vb değiştirir..
Bunun için daha zarif/verimli bir çözüm var mı? Mat nesnesini doğrudan Kanvas veya Resim ya da görüntü olarak yazdırılabilir şekilde basabilme özelliği var mı?
sadece bir not: imencode() işlevinde ".png" yi de ayarlayabilirsiniz. Bu programcı ihtiyaçlarına bağlıdır, bu yüzden görüyorum – andriy
bilgi kaybı yok. Sorun, çok uzun sürmesi. Yukarıdaki prosedür mümkün olan en hızlı şekilde yakındır. Sadece yerel belleğe işaret etmenin daha hızlı olacağına inanıyorum. – dannyxyz22
Önerdiğim çözüm, görüntüyü GUI'ye yeterince hızlı yükleyecek, ancak yine de cevabınızı çok yardımcı buldum. OpenCV'de ve ImageJ'de ilk görüntüyü işlerken ve binlerce görüntü ile çalışırken bu tekniği (Mat'ı BufferedImage'a dönüştürürüm) kullanırım.Ve buradaki hız gerçekten önemlidir – andriy