我下载了OpenCV库进行处理,但可以';不要运行示例

我下载了OpenCV库进行处理,但可以';不要运行示例,opencv,processing,c++,Opencv,Processing,C++,我下载了OpenCV库,以便按照我在本文中提出的问题进行处理: 但是,除了“LiveCamTest”示例之外,我无法运行任何示例程序。在任何其他示例中,例如: import gab.opencv.*; PImage src, dst; OpenCV opencv; ArrayList<Contour> contours; ArrayList<Contour> polygons; void setup() { src = loadImage("test.jpg")

我下载了OpenCV库,以便按照我在本文中提出的问题进行处理:

但是,除了“LiveCamTest”示例之外,我无法运行任何示例程序。在任何其他示例中,例如:

import gab.opencv.*;

PImage src, dst;
OpenCV opencv;

ArrayList<Contour> contours;
ArrayList<Contour> polygons;

void setup() {
  src = loadImage("test.jpg"); 
  size(src.width, src.height/2);
  opencv = new OpenCV(this, src);

  opencv.gray();
  opencv.threshold(70);
  dst = opencv.getOutput();

  contours = opencv.findContours();
  println("found " + contours.size() + " contours");
}

void draw() {
  scale(0.5);
  image(src, 0, 0);
  image(dst, src.width, 0);

  noFill();
  strokeWeight(3);

  for (Contour contour : contours) {
    stroke(0, 255, 0);
    contour.draw();

    stroke(255, 0, 0);
    beginShape();
    for (PVector point : contour.getPolygonApproximation().getPoints()) {
      vertex(point.x, point.y);
    }
    endShape();
  }
}
导入gab.opencv.*;
PImage src,dst;
OpenCV-OpenCV;
阵列等高线;
阵列多边形;
无效设置(){
src=loadImage(“test.jpg”);
尺寸(src.宽度,src.高度/2);
opencv=新的opencv(本,src);
opencv.gray();
opencv阈值(70);
dst=opencv.getOutput();
等高线=opencv.findContours();
println(“找到”+等高线.size()+等高线”);
}
作废提款(){
量表(0.5);
图像(src,0,0);
图像(dst,src.width,0);
noFill();
冲程重量(3);
用于(等高线:等高线){
笔划(0,255,0);
contour.draw();
冲程(255,0,0);
beginShape();
对于(PVector点:contour.getPolygonApproximation().getPoints()){
顶点(点x,点y);
}
endShape();
}
}
我得到一个错误:这个草图的大小无法根据您的代码确定。
有人能告诉我如何让这些例子发挥作用吗?谢谢。

您不能使用
setup()
函数中的变量调用
size()
函数。所以这是行不通的:

void setup() {
  src = loadImage("test.jpg"); 
  size(src.width, src.height/2);
你不能根据那样的图像大小绘制草图。您需要使用硬编码的值

您可能还想查看Processing 3中添加的
settings()
函数。发件人:

settings()
功能是Processing 3.0中的新功能。大多数草图都不需要它。只有在绝对需要使用变量定义
size()
的参数时,它才有用。或者,在处理开发环境(PDE)之外使用处理代码时,需要使用
settings()
功能。例如,使用Eclipse代码编辑器时,需要使用
settings()
来定义草图的
size()
smooth()

settings()
方法在设置草图之前运行,因此此时无法使用其他处理功能。例如,不要在
settings()
中使用
loadImage()
。与调用处理API中的命令的
setup()
命令相比,
settings()
方法“被动”运行以设置一些变量


顺便问一下,这些问题与C++无关,所以你可能想停止用标签来标记它们。

你不能用<代码> SETUP()/<代码>函数中的变量调用<代码> siz()/Cuff>函数。所以这是行不通的:

void setup() {
  src = loadImage("test.jpg"); 
  size(src.width, src.height/2);
你不能根据那样的图像大小绘制草图。您需要使用硬编码的值

您可能还想查看Processing 3中添加的
settings()
函数。发件人:

settings()
功能是Processing 3.0中的新功能。大多数草图都不需要它。只有在绝对需要使用变量定义
size()
的参数时,它才有用。或者,在处理开发环境(PDE)之外使用处理代码时,需要使用
settings()
功能。例如,使用Eclipse代码编辑器时,需要使用
settings()
来定义草图的
size()
smooth()

settings()
方法在设置草图之前运行,因此此时无法使用其他处理功能。例如,不要在
settings()
中使用
loadImage()
。与调用处理API中的命令的
setup()
命令相比,
settings()
方法“被动”运行以设置一些变量

顺便说一下,这些问题与C++无关,所以你可能想停止用标签来标记它们。