首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java Opencv未检测轮廓。imgproc.Drawcontours()

Java OpenCV是一个基于Java的计算机视觉库,用于图像和视频处理。它提供了各种功能,包括图像处理、特征检测、目标识别、图像分割等。

在Java OpenCV中,imgproc.drawContours()是一个用于绘制轮廓的函数。轮廓是图像中连续的边界线,可以用于对象检测、形状分析等应用。该函数可以将检测到的轮廓绘制在图像上,以便于可视化和进一步的处理。

使用imgproc.drawContours()函数,需要提供以下参数:

  • 图像对象:要在其上绘制轮廓的图像。
  • 轮廓列表:包含检测到的轮廓的列表。
  • 轮廓索引:要绘制的轮廓的索引。如果为负数,则绘制所有的轮廓。
  • 颜色:绘制轮廓的颜色。
  • 线宽:绘制轮廓的线宽。

以下是一个示例代码,演示如何使用Java OpenCV绘制轮廓:

代码语言:java
复制
import org.opencv.core.*;
import org.opencv.imgproc.Imgproc;

public class DrawContoursExample {
    public static void main(String[] args) {
        // 加载OpenCV库
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

        // 读取图像
        Mat image = Imgcodecs.imread("path/to/image.jpg");

        // 转换为灰度图像
        Mat grayImage = new Mat();
        Imgproc.cvtColor(image, grayImage, Imgproc.COLOR_BGR2GRAY);

        // 进行边缘检测
        Mat edges = new Mat();
        Imgproc.Canny(grayImage, edges, 100, 200);

        // 寻找轮廓
        Mat hierarchy = new Mat();
        List<MatOfPoint> contours = new ArrayList<>();
        Imgproc.findContours(edges, contours, hierarchy, Imgproc.RETR_EXTERNAL, Imgproc.CHAIN_APPROX_SIMPLE);

        // 绘制轮廓
        Scalar contourColor = new Scalar(0, 255, 0); // 绿色
        int contourThickness = 2;
        Imgproc.drawContours(image, contours, -1, contourColor, contourThickness);

        // 显示结果
        HighGui.imshow("Contours", image);
        HighGui.waitKey();
    }
}

在这个示例中,我们首先加载OpenCV库,并读取一张图像。然后将图像转换为灰度图像,并进行边缘检测。接下来,使用Imgproc.findContours()函数找到图像中的轮廓,并将其存储在contours列表中。最后,使用Imgproc.drawContours()函数将轮廓绘制在原始图像上,并显示结果。

对于Java OpenCV的更多信息和使用方法,您可以参考腾讯云的相关产品和文档:

请注意,以上答案仅供参考,具体的实现方式可能因应用场景和需求而有所不同。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

OpenCV 轮廓检测

在计算机视觉中,轮廓检测是另一个比较重要的任务。它包含的操作有计算矩形边界、圆形边界、多边形边界等等。 我们以下面的黑猫图为例来讲解如何利用OpenCV进行轮廓检测。 ?...img0 = cv2.imread("cat.jpg") #img = cv2.pyrUp(img)#面积放大4倍 img0 = cv2.pyrDown(img0)#原图有点大,面积缩小到1/4 要做轮廓检测...我们可以看到,原图底部灰色的文字在转二值图的时候被过滤掉了,不参与轮廓检测。...此时,我们可以检测轮廓点集(图中绿色的外边界点) #2个返回值,分别是轮廓的点集(contours)和各层轮廓的索引(hierarchy) # openCV 4 , 否则注意版本差异!...通常我们会计算凸多边线轮廓: #凸轮廓需要先加上下面这句 hull = cv2.convexHull(c) # 计算凸轮廓多变形时需要先处理轮廓 ?

1.8K20

OpenCV 矩形轮廓检测

转载请注明出处:http://blog.csdn.net/wangyaninglm/article/details/44151213, 来自:shiter编写程序的艺术 基础介绍 OpenCV里提取目标轮廓的函数是...This full hierarchy is built and shown in the OpenCV contours.c demo. method – Contour approximation...    输入图像image必须为一个2值单通道图像 contours参数为检测轮廓数组,每一个轮廓用一个point类型的vector表示 hiararchy参数和轮廓个数相同,每个轮廓contours...mode表示轮廓的检索模式 CV_RETR_EXTERNAL表示只检测轮廓 CV_RETR_LIST检测轮廓不建立等级关系 CV_RETR_CCOMP建立两个等级的轮廓,上面的一层为外边界,里面的一层为内孔的边界信息...") #pragma comment(lib,"opencv_highgui2410d.lib") #pragma comment(lib,"opencv_imgproc2410d.lib

82510

基于Python的OpenCV轮廓检测聚类

简介 OpenCV的“findContours”功能经常被计算机视觉工程师用来检测物体。OpenCV的存在,使得我们只需要编写几行代码就可以检测轮廓(对象)。...然而,OpenCV检测到的轮廓通常是分散的。例如,一个功能丰富的图像可能有数百到数千个轮廓,但这并不意味着图像中有那么多对象。...一些属于同一对象的轮廓是单独检测的,因此我们感兴趣的是对它们进行分组,使一个轮廓对应一个对象。...实现思路 当我在项目中遇到这个问题时,我花了很多时间尝试使用不同的参数或不同的OpenCV函数来检测轮廓,但没有一个有效。...我不知道如何输入正确的参数,我怀疑轮廓检测的数据类型是否适合该函数。 我需要使用python 2.7、OpenCV 3.3.1和Numpy 1.11.3。

1K10

基于OpenCV的区域分割、轮廓检测和阈值处理

OpenCV是一个巨大的开源库,广泛用于计算机视觉,人工智能和图像处理领域。它在现实世界中的典型应用是人脸识别,物体检测,人类活动识别,物体跟踪等。 现在,假设我们只需要从整个输入帧中检测到一个对象。...我们要完成一下三个步骤: • 定义兴趣区 • 在ROI中检测轮廓 • 阈值检测轮廓轮廓线 什么是ROI? 简而言之,我们感兴趣的对象所在的帧内的子区域称为感兴趣区域(ROI)。 我们如何定义ROI?...(输出)蓝色矩形覆盖的区域是我们的投资回报率 现在,如果您也想绑定感兴趣的对象,那么我们可以通过在ROI中找到轮廓来实现。 什么是轮廓轮廓线是 表示或说是限制对象形状的轮廓。...在对框架进行阈值处理并检测轮廓之后,我们应用凸包技术对围绕对象点的紧密拟合凸边界进行设置。实施此步骤后,框架应如下所示- ?...我们可以做的另一件事是,我们可以遮盖ROI以仅显示被检测到的轮廓本身覆盖的对象。再次- 什么是图像MASK? 图像MASK是隐藏图像的某些部分并显示某些部分的过程。这是图像编辑的非破坏性过程。

2.3K22

VC++中使用OpenCV进行形状和轮廓检测

VC++中使用OpenCV进行形状和轮廓检测 在VC++中使用OpenCV进行形状和轮廓检测轮廓是形状分析以及物体检测和识别的有用工具。...如下面的图像中Shapes.png中有三角形、矩形、正方形、圆形等,我们如何去区分不同的形状,并且根据轮廓进行检测呢?...1、首先我们对原始图像进行预处理,将原始图形灰度化、高斯模糊、Canny边缘检测、膨胀化处理,最后得到一副膨胀的图形 2、基于这幅膨胀的图像,我们调用findContours函数从膨胀化的二值图像中检索出所有的轮廓... #include #include using namespace cv; using...C++ in 4 HOURS | Including 3x Projects | Computer Vision Learn-OpenCV-cpp-in-4-Hours LEARN OPENCV in

7600

Python opencv图像处理基础总结(六) 直线检测检测 轮廓发现

我还有改变的可能性 一想起这一点 我就心潮澎湃 文章目录 一、直线检测 使用霍夫直线变换做直线检测,前提条件:边缘检测已经完成 # 标准霍夫线变换 cv2.HoughLines(image...OpenCV实现的是一个比标准霍夫圆变换更为灵活的检测方法——霍夫梯度法,该方法运算量相对于标准霍夫圆变换大大减少。...param2:圆心检测的累加阈值,参数值越小,可以检测越多的假圆圈,但返回的是与较大累加器值对应的圆圈 minRadius:检测到的圆的最小半径 maxRadius:检测到的圆的最大半径 import...只能传入二值图像,不是灰度图像 2 轮廓的检索模式,有四种: cv2.RETR_EXTERNAL 表示只检测轮廓...cv2.RETR_LIST 检测轮廓不建立等级关系 cv2.RETR_CCOMP 建立两个等级的轮廓,上面的一层为外边界,里面的一层为内孔的边界信息。

6.8K42

opencv+Recorder︱OpenCV 中的 Canny 边界检测+轮廓、拉普拉斯变换

本文来自于段力辉 译《OpenCV-Python 中文教程》 边缘检测是图像处理和计算机视觉中的基本问题,通过标识数字图像中亮度变化明显的点,来捕捉图像属性中的显著变化,包括深度上的不连续、表面方向的不连续.... ---- 二、OpenCV 中的 Canny 边界检测OpenCV 中只需要一个函数: cv2.Canny(),就可以完成以上几步。让我们看如何使用这个函数。这个函数的第一个参数是输入图像。.... ---- 三、OpenCV 中的轮廓 1、概念 轮廓可以简单认为成将连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度。轮廓在形状分析和物体的检测和识别中很有用。...• 在 OpenCV 中,查找轮廓就像在黑色背景中超白色物体。你应该记住,要找的物体应该是白色而背景应该是黑色。...perimeter = cv2.arcLength(cnt,True) . ---- 四、拉普拉斯变换 1、理论以及opencv的函数 拉普拉斯变换也可以用作边缘检测,用二次导数的形式定义。

2.6K51

计算机视觉 OpenCV Android | 基本特征检测轮廓分析

调用该API会返回一个Rect对象实例,它是OpenCV关于矩形的数据结构, 从中可以得到外界矩形(边界框)的宽高, 然后就可以计算出轮廓的横纵比了。..., 首先需要得到四个顶点, 然后通过OpenCV绘制直线的API来完成旋转矩形的绘制。...true);     Log.i("contourArea", "area:" + rate);     Log.i("arcLength", "arcLength:" + arclen);     Imgproc.drawContours...感兴趣的小伙伴可以进一步细化该方法, 将计算得到的轮廓几何属性值如长度、面积等 通过putText函数显示到输出的图像上 ---- 参考材料 《OpenCV Android 开发实战》(贾志刚 著)...关于《OpenCV Android 开发实战》作者的GitHub项目 笔者基于作者GitHub维护的APP

1.4K20

python-opencv2利用cv2.findContours()函数来查找检测物体的轮廓

这篇文章主要介绍在Python中使用OpenCV检测并绘制轮廓轮廓检测 轮廓检测也是图像处理中经常用到的。...OpenCV-Python接口中使用cv2.findContours()函数来查找检测物体的轮廓。 实现 使用方式如下: import cv2 img = cv2.imread("....补充: OpenCV-Python教程(11、轮廓检测)_sunny2038的专栏-CSDN博客_轮廓检测博客提到,可用下面的方式计算得到轮廓的极值点,如下 pentagram = contours[1...too many values to unpack (expected 2)的错误 最近在OpenCV-Python接口中使用cv2.findContours()函数来查找检测物体的轮廓。...参考: OpenCV-Python教程(11、轮廓检测)_sunny2038的专栏-CSDN博客_轮廓检测 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

2.9K21

Android OpenCV 4.6.0 颜色追踪

介绍 通过OpenCV实现,实时识别摄像头中的固定颜色块的坐标位置,并进行标注。 简而言之,追踪摄像头中纯色物体的运动轨迹。 我们可以通过OpenCV来识别视频中的纯色物体的移动轨迹。...针对膨胀完毕的数据,执行轮廓提取。 遍历轮廓数组得到轮廓面积最大的坐标集合。 完成 主要步骤为上面这几种。下面,将会介绍如何实现。...2.5 轮廓提取 当我们得到膨胀结束后的对,就可以进行轮廓提取findContours了。...Imgproc.rectangle(mat, rect, new Scalar(255, 0, 0), 2); //在mat中绘制一个矩形 } 我们如果是MatOfPoint对象,绘制方法如下: Imgproc.drawContours...整体实现的代码大部分参考openCV SDK中的samples示例代码。

1.6K20

大伽带你入门OpenCV Python计算机视觉

CSDN博客专家 51CTO学院特级讲师 拥有多年图像处理与OpenCV开发经验 《Java数字图像处理-编程技巧与应用实践》 《OpenCV Android开发实战》 两本技术书籍作者 OpenCV...-《OpenCV Python图像与视频分析》 详细讲述图像二值化的各种方法,二值图像分析的连通组件分析,轮廓发现与轮廓分析,轮廓测量,几何距分析,距离变换、点多边形测试, 基于HU距不变性的轮廓匹配与几何形状识别案例...,基于图像形态学的二值图像预处理,霍夫直线与圆检测各种技巧,通过拟合实现直线、圆检测方法。...视频读写,视频背景分析,前景对象mask提取与背景提取,颜色物体对象跟踪,实时人脸检测,实时车道线检测等内容。 图像几何分析案例: ? 视频对象跟踪: ? ? 视频背景对象与前景图像提取: ? ?...视频中车道线检测: ? 当你还在犹豫是否要学习OpenCV计算机视觉的时候,别人已经学完开始工作了!技术改变人生,努力成就梦想!

1.5K20

我为什么要写《OpenCV Android 开发实战》这本书

2015年我出版了个人第一本关于图像处理方面的书籍《Java图像处理-编程技巧与应用实践》,这本书主要是从理论与编码上面详细阐述了图像处理基础算法以及它们在编码实现上的技巧。...计算机视觉作为人工智能的分支学科之一、符合未来科技发展方向,OpenCV是开源的可以商业应用的最流行的计算机视觉框架,包含了3000多个算法实现,其SDK支持Java、C++、Python等编程语言,支持...5.1 梯度算子 5.2 拉普拉斯算子 5.3 Canny边缘检测 5.4 霍夫直线检测 5.5 霍夫圆检测 5.6 轮廓检测与绘制...5.7.1 - 轮廓检测与绘制轮廓 5.7.2 - 绘制轮廓外接矩形与圆 5.7.3 - 绘制最小外接矩形 5.7 轮廓分析...) 6.5 Feature2D中检测器与描述子 - BRISK - ORB - AKAZE 6.6 特征匹配查找已知对象 (跟特征匹配结果在一张图中寻找已知对象并把对象轮廓标记出来

1.6K30

手把手教你用OpenCV做人脸口罩佩戴检测(附详细步骤+代码)

导读 本期将介绍使用OpenCV实现人脸口罩佩戴检测的详细步骤,手把手教你做一个效果还可以的口罩佩戴检测系统。...方法很多,这里列举几个比较典型的方法: ① 用深度学习目标检测的方法,标注佩戴口罩与佩戴口罩两类,然后选择合适的网络去训练检测,比如YoloV5等; ② 先检测人脸,然后将人脸ROI图像做分类,分为佩戴口罩和佩戴口罩两类...效果展示 演示从视频中检测人脸是否佩戴口罩,佩戴口罩将语音提示,避免露脸,测试视频素材来源于网络,实测使用笔记本自带摄像头检测效果更佳: 实现步骤与对应代码 程序实现步骤: (1) 使用OpenCV...DNN网络检测人脸; (2) 通过HSV阈值提取肤色; (3) 通过肤色轮廓面积与人脸ROI面积比值判断是否佩戴口罩。...; (3) 使用OpenCV DNN网络检测人脸,使用自带的opencv_face_detector_uint8.pb能适应部分人脸遮挡和侧脸情况,能继续进行后续检测

12K63

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券