【问题标题】:putText does not work in opencv3.0putText 在 opencv3.0 中不起作用
【发布时间】:2016-09-13 22:08:12
【问题描述】:
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 存在问题,我在互联网上搜索过但没有解决方案。

错误信息是:

Imgproc 类型中的 putText(org.opencv.core.Mat, java.lang.String, org.opencv.core.Point, int, double, org.opencv.core.Scalar) 方法不适用于参数(org.opencv.core.Mat、java.lang.String、java.awt.Point、int、double、org.opencv.core.Scalar)

并且参数应该是正确的,如上面显示的消息。 我该如何解决这个问题?

【问题讨论】:

  • 您必须提供有关您收到的错误或程序的预期和实际输出的更多信息。
  • 您使用的是java.awt.Point 而不是org.opencv.core.Point
  • 然后作为答案添加。很高兴它有帮助

标签: java opencv3.0


【解决方案1】:

错误消息已经显示了问题:

方法putText(org.opencv.core.Mat, java.lang.String, org.opencv.core.Point, int, double, 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

【讨论】:

    【解决方案2】:

    此代码正在运行。

    // 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));
            }
    

    【讨论】:

      猜你喜欢
      • 2016-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-25
      • 1970-01-01
      • 2015-02-23
      • 2013-06-23
      • 1970-01-01
      相关资源
      最近更新 更多