Tag: javacv

OpenCV的FrameGrabber的输出图像不正确

我正在开发一个依赖于手指检测的OpenCV项目。 目前我有一个OpenCVFrameGrabber ,它抓取一个帧并将其放在一个IplImage 。 然后我将该图像绘制到我的GUI上。 这一切都有效,但即使我有彩色相机,绘制的图像似乎是黑白的。 图像中有明显的垂直线,当有一些颜色时,它似乎被分成沿这些线的分量。 有谁知道获取原始网络摄像头图像的方法?

JavaCV透视校正

我转换了使用OpenCV和C ++实现的透视校正代码: https : //opencv-code.com/tutorials/automatic-perspective-correction-for-quadrilateral-objects/ 获取以Java实现的以下OpenCV代码: public class project { static Point2f center; public static void main(String args[]) { System.loadLibrary(Core.NATIVE_LIBRARY_NAME); center = new Point2f(0,0); Mat src = new Mat(); src = Highgui.imread(“image.jpg”); if(src == null) { System.out.println(“Image not loaded”); System.exit(1); } Mat bw = new Mat(); Imgproc.cvtColor(src, bw, Imgproc.COLOR_BGR2GRAY); Imgproc.blur(bw, bw, new Size(3,3)); Imgproc.Canny(bw, bw, […]

使用opencv或javacv识别图像中具有相同颜色的轮廓?

这个问题与我之前在该问题中的问题有关,我使用彩色图像作为输入,并通过使用线条颜色进行识别,但我想知道如何使用灰度图像识别这种图像。 这是灰度输入图像,必须进行识别 我需要通过其位置(x和y坐标)识别以下对象。 请一些人用简单的代码示例来解释这些对象,我也需要识别这些对象的连接线(如下图所示)。 请使用简单的代码示例来解释这个问题。

如何编辑此方法以使用javacv绘制多边形?

我在stackoverflow中经历了许多问题和问题,我找到了以下用于绘制矩形的方法。 public static void drawSquares( IplImage image, final CvSeq squares ) { if(!squares.isNull()){ CvSeq p = new CvSeq(squares.total()); cvCvtSeqToArray(squares, p, CV_WHOLE_SEQ); System.out.println(squares.total()); for(int i = 0; i < squares.total(); i ++ ) { CvPoint pts = new CvPoint(4); cvCvtSeqToArray(p.position(i), pts, CV_WHOLE_SEQ); // //cvBoundingRect(image, i); int npt[] = {4, 4}; // //DrawLine() reference http://opencv.willowgarage.com/documentation/cpp/drawing_functions.html#cv-line cvDrawLine(image, new […]

使用JavaCV在Java中使用OpenCV语句的等效项

我想知道如何使用JavaCV在OpenCV中构造以下C ++语句: float* p = (float*)cvGetSeqElem(circles, i); int radius = cvRound(p[2]); 使用cvHoughCircles()检测圆的半径。 显然Java不使用指针,所以我不知道如何在Java中这样做。 到目前为止我的代码所以你可以看到它的上下文: lines = cvHoughCircles(frame2, storage, CV_HOUGH_GRADIENT, 1, 50, 300, 60, 10, 600); for (int i = 0; i < lines.total(); i++) { //Would like the code to go here CvPoint2D32f point = new CvPoint2D32f(cvGetSeqElem(lines, i)); cvCircle(src, cvPoint((int)point.x(), (int)point.y()), 3, CvScalar.WHITE, -1, 8, […]

将OpenCV矩阵循环转换为JavaCV

不久前得到了O’Reilly的“学习OpenCV”一书,从那以后我一直在忙着将我看到的所有示例代码从OpenCV转换为JavaCV,通常也会进行一些我自己的修改。 我一直试图尽可能地保持纯OpenCV(C语言)代码并避免使用Java。 例如,我直接通过JavaCV中的OpenCV highgui包实现了所有的接口元素,而不是通过Java Swing。 通过这样做,我希望以相对较短的顺序学习OpenCV库和一些C,以及建立一个有用的函数库,如果我决定稍后切换到纯OpenCV,我将能够轻松地转换为C. 无论如何,我对C知之甚少,有时在处理指针时遇到麻烦。 本书推荐使用以下代码作为迭代3通道矩阵的最佳方法: float sum( const CvMat* mat ) { float s = 0.0f; for(int row=0; rowrows; row++ ) { const float* ptr = (const float*)(mat->data.ptr + row * mat->step); for( col=0; colcols; col++ ) { s += *ptr++; } } return( s ); } 以下是此代码的附加说明: 在将指针计算到矩阵中时,请记住矩阵元素数据是联合。 因此,在取消引用此指针时,必须指示union的正确元素才能获得正确的指针类型。 然后,要设置该指针,必须使用矩阵的step元素。 如前所述,step元素以字节为单位。 […]

在opencv中下面的代码行是什么意思?

这段代码行的含义是什么?如何将此代码转换为javacv? gray = Scalar::all(255); 这是与此代码行相关的完整代码。 Mat src = imread(“in.jpg”), gray; cvtColor(src, gray, CV_BGR2GRAY); threshold(gray, gray, 230, 255, THRESH_BINARY_INV); vector hierarchy; vector<vector > contours; findContours(gray, contours, hierarchy, CV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE); gray = Scalar::all(255); 有人可以解释一下吗?

在JavaCV中传递给cvFindContours()的参数是什么?

cvFindContours有人可以解释一下cvFindContours方法及其所需的参数是什么? 例如,这是使用OpenCV的代码: hierarchy = cv2.findContours(thresh, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE) 有人可以解释如何使用JavaCV编写这个吗?

如何使用opencv或javacv识别多边形?

我正在做一个使用图像处理技术来识别不同对象及其长度的项目。 我在javaCV以及OpenCV中经历了很多例子。 但不幸的是我无法识别多边形的T形。 我尝试使用以下矩形识别方法,但我失败了。 public static CvSeq findSquares( final IplImage src, CvMemStorage storage) { CvSeq squares = new CvContour(); squares = cvCreateSeq(0, sizeof(CvContour.class), sizeof(CvSeq.class), storage); IplImage pyr = null, timg = null, gray = null, tgray; timg = cvCloneImage(src); CvSize sz = cvSize(src.width() & -2, src.height() & -2); tgray = cvCreateImage(sz, src.depth(), 1); gray = […]

在纯Java中学习JavaCV

我正在努力学习JavaCV。 众所周知,缺乏关于这一主题的教育材料是一个非常大的问题。 在JavCV主页中,他们为“OpenCV CookBook”一书中的C ++示例提供了大量示例。 但情况是,他们不是Java,他们在SCALA !!!! 现在我已经疯了! 我知道很多例子都在网上,但我想从头开始学习它,然后我才能正确地做到。 “OpenCV CookBook”是一本非常好的书,但它完全是关于C ++中的OpenCV,而不是关于Java的。 有人请帮我找个更好的学习JavaCV的地方。 提供我,URL,书籍等等。但它必须是在100%Java中学习JavaCV,而不是在Scala,C ++,C或其他任何语言中学习! 请帮忙!