Я использую эту библиотеку 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;
Как разрешить ?
Спасибо!