如何修复java示例的导入

时间:2015-08-26 07:59:45

标签: java opencv import

我想尝试使用OpenCV在Java中实现FloodFill。 我找到了一个例子。太糟糕了,它无法识别导入库。
基本上有两个问题。
1。我不知道那是什么:

import controlP5.ControlP5;

import controlP5.Slider;

import processing.core.PApplet;

是作者写的是他使用但不分享的内容?如果不是我如何安装呢?


2。我成功安装了OpenCV。但它看起来像这样

import org.opencv.core.*; 

不等于这个例子,它有什么不同吗?

您可以在下面看到源代码

import java.awt.Point;

import controlP5.ControlP5;
import controlP5.Slider;

import processing.core.PApplet;
import sj.opencv.Capture;
import sj.opencv.CxCore;
import sj.opencv.CxCore.CompareMode;
import sj.opencv.HighGui;
import sj.opencv.ImgProc;
import sj.opencv.IplImage;
import sj.opencv.PUtils;
import sj.opencv.Scalar;
import sj.opencv.Constants.ColorModel;
import sj.opencv.Constants.PixelDepth;

/**
 * @author siggi
 * @date Jul 29, 2010
 */
 public class FloodFill extends PApplet{

    int w = 320;
    int h = 240;

    IplImage im;
    IplImage im_res;
    Capture capture;

    int click_x = w/2;
    int click_y = h/2;

    // Slider values
    Slider low_slider;
    Slider high_slider;

    @Override
    public void setup(){
            size(2*w + 2, h+150);

            // Camera initiated to capture from device
            capture = HighGui.captureFromCAM(0);

            im = CxCore.createImage(w, h, PixelDepth.IPL_DEPTH_8U, ColorModel.BGR);
            im_res = CxCore.createImage(w+2, h+2, PixelDepth.IPL_DEPTH_8U, ColorModel.GRAY);

            // Init GUI
            ControlP5 controlP5 = new ControlP5(this);
            low_slider = controlP5.addSlider("low_val",     0,      10,     5,      20,             h+20,   10,     100);
            high_slider = controlP5.addSlider("high_val",   0,      10,     5,      80,             h+20,   10,     100);
    }

    @Override
    public void draw(){
            // When a frame becomes available
            if( HighGui.queryFrame(capture, im) ){
                    background(70);

                    // Draw it
                    image(PUtils.getPImage(im), 0, 0);

                    // Start by clearing the mask (it needs to be cleared for repeatable behavior)
                    CxCore.set(im_res, new Scalar(0), null);

                    // Perform the floodfilling
                    ImgProc.floodFill(im, new Point( click_x, click_y ), new Scalar(low_slider.value()), new Scalar(high_slider.value()), im_res);

                    // This simply changes the mask from being a 0-1 value to 0-255 value for viewing
                    CxCore.cmpS(im_res, 0, im_res, CompareMode.CV_CMP_NOT_EQUAL);

                    image(PUtils.getPImage(im_res), w, 0);
            }
    }

    @Override
    public void mouseClicked(){
            click_x = mouseX;
            click_y = mouseY;

            if( click_x<0 ) click_x = 0;
            if( click_x>=w ) click_x = w-1;
            if( click_y<0 ) click_x = 0;
            if( click_y>=h ) click_x = h-1;
    }

}

任何形式的帮助都会很棒。在此先感谢=)

0 个答案:

没有答案