【发布时间】:2015-05-02 05:49:42
【问题描述】:
------更正版本-----------
我目前正在使用 Processing 进行项目。我需要在我的项目中进行图像处理,最初我想使用opencv。但不幸的是,我发现用于处理的 opencv 并不是原始版本的完整版本。
如何开始使用 Processing 进行图像处理?我发现由于处理是java的包装器,所以java语言是可以接受的。我可以在处理中使用 JavaCV 吗?如果有,怎么做?
这是示例代码:-
import gab.opencv.*;
import org.opencv.imgproc.Imgproc;
import org.opencv.core.Core;
import org.opencv.highgui.Highgui;
import org.opencv.core.Mat;
import org.opencv.core.MatOfPoint;
import org.opencv.core.MatOfPoint2f;
import org.opencv.core.MatOfPoint2f;
import org.opencv.core.CvType;
import org.opencv.core.Point;
import org.opencv.core.Size;
import org.opencv.core.Core.MinMaxLocResult;
PImage imgBack, rightSection, leftSection;
PImage img;
void setup(){
imgBack=loadImage("tk100backback.jpg");
leftSection=imgBack.get(0,0,14,200);
rightSection=imgBack.get(438,0,32,200);
img=createImage(46,200,RGB);
img.set(0,0,rightSection);
img.set(32,0,leftSection);
size(46,200);
Mat src= Highgui.imread(img.toString());
Mat tmp=Highgui.imread("templateStarMatching.jpg");
int result_cols=src.cols()-tmp.cols()+1;
int result_rows=src.rows()-tmp.rows()+1;
Mat result = new Mat(result_rows, result_cols, CvType.CV_32FC1);
Imgproc.matchTemplate(src, tmp, result, Imgproc.TM_CCOEFF_NORMED);
MatOfPoint minLoc = new MatOfPoint();
MatOfPoint maxLoc = new MatOfPoint();
MinMaxLocResult mrec=new MinMaxLocResult();
mrec=Core.minMaxLoc(result,null);
System.out.println(mrec.minVal);
System.out.println(mrec.maxVal);
Point point = new Point(mrec.maxLoc.x+tmp.width(), mrec.maxLoc.y+tmp.height());
// cvRectangle(src, maxLoc, point, CvScalar.WHITE, 2, 8, 0);//Draw a Rectangle for Matched Region
}
void draw(){
image(img,0,0);
}
Core 不存在且 Highgui 未正确安装,但它们已正确安装,不断给我错误提示
【问题讨论】:
-
如果您在处理中处于 Java 模式,您可以在您的草图中使用任何 Java 库。你试过什么?
-
但是 java 类呢?
-
他们呢?我真的不确定你的问题是什么。可以从 Processing 中使用 Java,也可以从 Java 中使用 Processing。
-
也许您可以指定您想要进行的图像处理类型。处理它自己可以处理很多没有任何库...
-
关于使用库,阅读:github.com/processing/processing/wiki/…底部是非处理库的说明。
标签: java opencv image-processing computer-vision processing