gpt4 book ai didi

java - 如何修复 java 示例的导入

转载 作者:太空宇宙 更新时间:2023-11-03 21:52:55 25 4
gpt4 key购买 nike

我想尝试使用 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;
}

任何形式的帮助都会很棒。提前致谢=)

最佳答案

sj.opencv是openCV和processing的包装,和org.opencv不一样这或多或少是 openCV 的原生方法。

关于java - 如何修复 java 示例的导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32221009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com