Невозможно удалить изображение водяного знака с помощью ByeByeWatermark - PullRequest
0 голосов
/ 26 января 2020

Я использую эту библиотеку Java для удаления водяных знаков с изображений: https://github.com/kendricktan/byebyewatermark

В следующем коде я пытаюсь преобразовать IplImage в org.bytedeco.javacv.Frame :

previewImgBtn.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            // If the image path isn't set
            if (watermarkedImgPath.equals("") || thumnbailImgPath.equals("") || maskedImgPath.equals("")){                  
                statusLabel.setText("please select yer images");
            }
            else{
                IplImage watermarkedImage = cvLoadImage(watermarkedImgPath);

                // Our cleaned image
                IplImage cleanedImage = new IplImage();
                cleanedImage = IplImage.create(watermarkedImage.cvSize(), watermarkedImage.depth(), watermarkedImage.nChannels());
                cleanedImage = getCleanImage();

                CanvasFrame frame = new CanvasFrame("preview", CanvasFrame.getDefaultGamma());
                OpenCVFrameConverter.ToIplImage converter = new OpenCVFrameConverter.ToIplImage();


                // Next line results in following error:
                // The method convert(IplImage) in the type OpenCVFrameConverter.ToIplImage is not applicable for the arguments (opencv_core.IplImage)
                Frame newImage = converter.convert(cleanedImage);

                frame.showImage(newImage);
            }
        }
});

При выполнении converter.convert(cleanedImage) появляется следующая ошибка:

The method convert(IplImage) in the type OpenCVFrameConverter.ToIplImage is not applicable for the arguments (opencv_core.IplImage)

Я импортировал следующие библиотеки:

import javax.imageio.*;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.GridLayout;
import java.awt.FlowLayout;
import javax.swing.BoxLayout;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JFileChooser;

import java.awt.Canvas;
import java.awt.Button;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.awt.event.ActionEvent;

import org.bytedeco.javacpp.opencv_core.*;
import org.bytedeco.javacpp.opencv_imgproc.*;
import org.bytedeco.javacv.FrameGrabber;
import org.bytedeco.javacv.OpenCVFrameConverter;
import org.bytedeco.javacv.OpenCVFrameGrabber;
import org.bytedeco.javacv.CanvasFrame;
import org.bytedeco.javacv.Frame;

import static org.bytedeco.javacpp.opencv_imgcodecs.*;
import static org.bytedeco.javacpp.opencv_highgui.*;
import static org.bytedeco.javacpp.opencv_imgproc.*;
import static org.bytedeco.javacpp.opencv_core.*;
import javax.swing.ImageIcon;
import java.awt.Toolkit;

Как разрешить ?

Спасибо!

...