【问题标题】:How to remove this Error "The method getBufferedImage() is undefined for the type opencv_core.IplImage"如何删除此错误“opencv_core.IplImage 类型的方法 getBufferedImage() 未定义”
【发布时间】:2016-12-05 16:12:33
【问题描述】:

这是我的代码。它继续显示此消息“方法 getBufferedImage() 对于 opencv_core.IplImage 类型未定义”。我怎样才能摆脱它?有没有其他获取缓冲图像的方法?如果有人有任何想法,请尽快告诉我

public IplImage snapIm = null;
public Rectangle faceRect;
public void paintComponent(Graphics g){ 
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D) g;

        if (snapIm != null)
            g2.drawImage(snapIm.getBufferedImage(), 0, 0, this); //This Line is causing problem

        drawRect(g2);
        writeStats(g2);
        writeName(g2);
}
public void recogFace(IplImage img)
{
    BufferedImage clipIm = null;
    synchronized(faceRect) {
        if (faceRect.width == 0) {
            System.out.println("No face selected");
            return;
        }
        clipIm = ImageUtils.clipToRectangle(img.getBufferedImage(),faceRect.x, faceRect.y, faceRect.width, faceRect.height); //This Line is causing problem
    }
    if (clipIm != null) 
    matchClip(clipIm);
}

【问题讨论】:

    标签: java opencv javacv face-recognition iplimage


    【解决方案1】:

    我在尝试检测 Hand 时也遇到了同样的问题。我发现新的 openCV 版本没有 org.bytedeco.opencv_core.IplImage 类的 getBufferedImage() 方法。我发现这种方法对我有用。

    public static BufferedImage IplImageToBufferedImage(IplImage src) {
        OpenCVFrameConverter.ToIplImage grabberConverter = new OpenCVFrameConverter.ToIplImage();
        Java2DFrameConverter paintConverter = new Java2DFrameConverter();
        Frame frame = grabberConverter.convert(src);
        return paintConverter.getBufferedImage(frame,1);
    }
    

    我希望这个方法能帮助你解决你的问题。

    【讨论】:

      猜你喜欢
      • 2012-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-30
      • 2018-04-02
      • 1970-01-01
      • 2016-10-28
      相关资源
      最近更新 更多