2015-12-13 6 views
2
import java.awt.Point; 
import java.awt.image.BufferedImage; 
import java.io.File; 
import java.io.IOException; 
import javax.imageio.ImageIO; 
import javax.swing.JFrame; 
import org.opencv.core.Core; 
import org.opencv.core.Mat; 
import org.opencv.core.Scalar; 
import org.opencv.core.Size; 
import org.opencv.imgcodecs.Imgcodecs; 
import org.opencv.imgproc.Imgproc; 

public class Testingopencv 
{ 

    public static void main(String[] args) 
    { 
     System.loadLibrary("opencv_java300"); 

     Mat src = Imgcodecs.imread("m.jpg"); 
     Mat temp = new Mat(src.rows(),src.cols(), src.type()); 

     Imgproc.putText(src, "Edited by me", new Point(src.rows()/2,src.cols()/2), 
      Core.FONT_ITALIC, 1.0 ,new Scalar(255)); 
     Imgcodecs.imwrite("watermarked.jpg", src); 
    } 
} 

Я пытаюсь использовать OpenCV 3.0, чтобы сделать водяной знак на изображения, но есть проблема с putText, я искал по всему интернету, но нет никакого решения.putText не работает в opencv3.0

Сообщение об ошибке:

Метод putText (org.opencv.core.Mat, java.lang.String, org.opencv.core.Point, INT, двойной, org.opencv.core .Scalar) в типе Imgproc не применим для аргументов (org.opencv.core.Mat, java.lang.String, java.awt.Point, int, double, org.opencv.core.Scalar)

И параметры должны быть правильными, как показано выше. Как я могу это решить?

+2

Необходимо предоставить больше информации о полученной ошибке или ожидаемом и актуальном выходе вашей программы. – oarfish

+1

Вы используете 'java.awt.Point' вместо' org.opencv.core.Point' – Miki

+0

@Miki спасибо Sir – hychanbb

ответ

2

Сообщение об ошибке показывает уже вопрос:

Метод putText (org.opencv.core.Mat, java.lang.String, org.opencv.core.Point, INT, двойной, org.opencv.core.Scalar) в типе Imgproc не применим для аргументов (org.opencv.core.Mat, java.lang.String, java.awt.Point, int, double, org.opencv.core .Scalar)

обязательно пройти putText точку в org.opencv.core.Point вместо java.awt.Point.

1

Этот код работает.

// Draw a bounding box around each face. 
     for (Rect rect : faceDetections.toArray()) 
     { 
      Core.rectangle(image, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), new Scalar(0, 255, 255)); 
      // for crop face 
      rectCrop = new Rect(rect.x, rect.y, rect.width, rect.height); 

      Core.putText(image, "Edited by me", new Point(rect.x,rect.y), 
        Core.FONT_HERSHEY_PLAIN, 1.0 ,new Scalar(0,255,255)); 
     } 
Смежные вопросы