Opencv 打开cv-处理-检测葡萄
我有一个opencv的问题,我必须用相机检测和跟踪葡萄使用程序:处理,怎么办?能给我举个例子吗?谢谢 此代码是检测人脸的示例代码: 导入gab.opencv.*; 导入处理。视频。*; 导入java.awt.*; 捕获视频; OpenCV-OpenCV; 无效设置{ 尺寸640480; 视频=新Capturatis,640/2480/2; opencv=newopencvthis,640/2480/2; opencv.loadcascade opencv.CASCADE_FRONTALFACE; 视频启动; } 抽真空{ 鳞片2; opencv.loadImagevideo; 图像视频,0,0; 无填料; 冲程0,255,0; 冲程重量3; 矩形[]面=opencv.detect; 打印长度; 对于int i=0;iOpencv 打开cv-处理-检测葡萄,opencv,processing,Opencv,Processing,我有一个opencv的问题,我必须用相机检测和跟踪葡萄使用程序:处理,怎么办?能给我举个例子吗?谢谢 此代码是检测人脸的示例代码: 导入gab.opencv.*; 导入处理。视频。*; 导入java.awt.*; 捕获视频; OpenCV-OpenCV; 无效设置{ 尺寸640480; 视频=新Capturatis,640/2480/2; opencv=newopencvthis,640/2480/2; opencv.loadcascade opencv.CASCADE_FRONTALFACE;
不是你的个人密码部队。到目前为止,您尝试了什么?我更新了PostInd发布的球的短剪辑?:这个程序直接捕获一个视频,它必须检测一些圆圈。我不会用它来检测图形。你是说葡萄吗?对不起,我不能检测形式。你能做代码吗?你试过用这个例子来交换大理石和葡萄的图像吗?你得到了什么输出?是的,它检测到了,但我不会也检测表单,你能做吗,我不明白它是怎么做的我不明白你所说的表单是什么意思。每个葡萄的轮廓?一簇葡萄的轮廓?你有没有办法想象一下,让别人更容易理解?萨缪尔的意思是一堆葡萄,许多小圆圈。我是萨缪尔的朋友。谢谢你有趣的反馈
import gab.opencv.*;
PImage img;
OpenCV opencv;
Histogram histogram;
int lowerb = 50;
int upperb = 100;
ArrayList<Contour> contours;
ArrayList<Contour> polygons;
void setup() {
size(800,400);
img = loadImage("grape-harvest-inside.jpg");
opencv = new OpenCV(this, img);
opencv.useColor(HSB);
}
void draw() {
opencv.loadImage(img);
image(img, 0, 0);
opencv.setGray(opencv.getH().clone());
opencv.inRange(lowerb, upperb);
histogram = opencv.findHistogram(opencv.getH(), 255);
image(opencv.getOutput(), width/2, height/2, width/2,height/2);
noStroke(); fill(0);
histogram.draw(10, height - 230, 400, 200);
noFill(); stroke(0);
line(10, height-30, 410, height-30);
text("Hue", 10, height - (textAscent() + textDescent()));
float lb = map(lowerb, 0, 255, 0, 400);
float ub = map(upperb, 0, 255, 0, 400);
stroke(255, 0, 0); fill(255, 0, 0);
strokeWeight(2);
line(lb + 10, height-30, ub +10, height-30);
ellipse(lb+10, height-30, 3, 3 );
text(lowerb, lb-10, height-15);
ellipse(ub+10, height-30, 3, 3 );
text(upperb, ub+10, height-15);
contours = opencv.findContours();
for (Contour contour : contours) {
stroke(0, 255, 0);
noFill();
contour.draw();
}
}
void mouseMoved() {
if (keyPressed) {
upperb += mouseX - pmouseX;
}
else {
if (upperb < 255 || (mouseX - pmouseX) < 0) {
lowerb += mouseX - pmouseX;
}
if (lowerb > 0 || (mouseX - pmouseX) > 0) {
upperb += mouseX - pmouseX;
}
}
upperb = constrain(upperb, lowerb, 255);
lowerb = constrain(lowerb, 0, upperb-1);
}