## Java中使用OpenCV对轮廓进行筛选
在图像处理中,轮廓是图像中的一组连续的边界线,可以帮助我们检测物体、识别形状等。在OpenCV中,轮廓是一组连续像素点的集合,我们可以对这些轮廓进行筛选,以满足不同的需求。本文将介绍如何使用Java和OpenCV对轮廓进行筛选。
### 流程图
```mermaid
flowchart TD
    A[加载图像] --> B[灰度化]            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-03-27 06:37:54
                            
                                49阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            所谓图像分割指的是根据灰度、颜色、纹理和形状等特征把图像划分成若干互不交迭的区域,并使这些特征在同一区域内呈现出相似性,而在不同区域间呈现出明显的差异性。我们先对目前主要的图像分割方法做个概述,后面再对个别方法做详细的了解和学习。一、图像分割算法概述1.1 基于阈值的分割方法阈值法的基本思想是基于图像的灰度特征来计算一个或多个灰度阈值,并将图像中每个像素的灰度值与阈值相比较,最后将像素根据比较结果            
                
         
            
            
            
            轮廓发现(find contour)轮廓即是以某种方式表示图像中的曲线的点的列表。这种表示可以根据实际的情形不同而不同。表示一条曲线的方式有很多种。轮廓发现是基于图像边缘提取的基础寻找对象轮廓的方法。所以边缘提取的阈值选定会影响最终轮廓发现的结果。OpenCV中,轮廓是由STL风格的vector<>模板对象表示的,其中vector中的每个元素都编码了曲线上,下一点的位置信息。先上干货D            
                
         
            
            
            
            1、 类比halcon的筛选区域面积的操作select_shape算子,opencv也可以对图形的轮廓进行面积的筛选,剔除无效区域。int main()
 {
 Mat srcImage = imread("D:\\Opencv\\Project\\ConnectionProject\\modules_08.png");
 imshow("【原图】", srcImage);//首先对图像进行空间的            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-15 18:48:47
                            
                                91阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            opencv实战week1opencv实战week1实战1-信用卡数字识别文本识别项目实战-文档扫描OCR识别 opencv实战week1实战1-信用卡数字识别step1-创建数字识别模板(1-10) 先转换为灰度图再二值化#灰度图
ref=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
#二值化
ref=cv2.threshold(ref,10,255,cv2.THR            
                
         
            
            
            
            一、查找轮廓查找一个轮廓一般对应一系列的点,也就是图像中的一条曲线。其表示方法可能根据不同的情况而有所不同。在OpenCV中,可以用findContours()函数从二值图像中查找轮廓1.1寻找轮廓: findContours()函数findContours()函数用于在二值图像中寻找轮廓。C++: void findcontours (InputoutputArray image, Output            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-26 11:51:14
                            
                                179阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            opencv学习笔记(二)寻找轮廓opencv中使用findContours函数来查找轮廓,这个函数的原型为:     1 void findContours(InputOutputArray image, OutputArrayOfArrays contours, OutputArray hierar-
 2 chy, int mode, int method, Point offset=Poi            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-26 11:22:40
                            
                                202阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            轮廓矩形框查找一个轮廓一般对应一系列的点,也就是图像中的一条曲线。其表示方法可能根据不同的情况而有所不同。在OpenCv中。可以用findContours()函数从二值图像中查找轮廓。(一)由于findContours()函数是在二值图像的基础上查找轮廓,所以我们需要对读取的彩色图形进行操作得到二值图像。blur(imageSource, image, Size(3, 3));
  thresho            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-27 09:45:55
                            
                                142阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            读入彩色3通道图像,转换成灰度图像,再转换成二值图像,完后检测轮廓。// cvtcolor.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/core/core.hpp&            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-29 02:21:03
                            
                                328阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            opencv的实用研究--分析轮廓并寻找边界点        轮廓是图像处理中非常常见的。对现实中的图像进行采样、色彩变化、灰度变化之后,能够处理得到的是“轮廓”。它直接地反应你了需要分析对象的边界特征。而对轮廓的分析,实际上也就是对原图像特征的分析。        在Opencv中,已经实现了基础的轮廓算法,但是相比较于比如halcon            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-05 19:05:29
                            
                                143阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            轮廓提取findContours发现轮廓findContours(
InputOutputArray  binImg, //输入8bit图像,0值像素值不变,非0的像素看成1;(变为二值图像)
 OutputArrayOfArrays  contours,//输出找到的轮廓对象
OutputArray,  hierachy// 图像的拓扑结构
int mode, //轮廓返回的模式(RETR_TR            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-17 16:06:14
                            
                                108阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Canny一类的边缘检测算法可以根据像素之间的差异,检测出轮廓边界的像素,但它没有将轮廓作为一个整体。所以要将轮廓提起出来,就必须将这些边缘像素组装成轮廓。OpenCV中有一个很强大的函数,它可以从二值图像中找到轮廓:findContours函数。有时我们还需要把找到的轮廓画出来,那就要用到函数drawContours了。findContours函数和那就要用到函数drawContours函数一般            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-05 13:52:07
                            
                                134阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            /*
Hu轮廓匹配:
#include "Opencv_MatchShape.h"
#include "Match_Shape_NCC.h"
int main(int argc, char* argv)
{
Opencv_MatchShape demo;
demo.MatchShape_HU();
system("pause");
return 0;
}
*/
#include <io            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-14 19:13:44
                            
                                55阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            文章目录轮廓检测1.1轮廓检测的作用:1.2方法1.3轮廓特征1.4轮廓近似1.5边界矩阵 轮廓检测1.1轮廓检测的作用:可以检测图图像或者视频中物体的轮廓计算多边形边界,形状逼近和计算感兴趣区域1.2方法为了更精确地提取轮廓,请使用二值图。也就是说,在使用轮廓提取函数前,请将源图片运用阈值进行二值化(cv2.threshold())或者采用Canny边缘检测。findContours 函数会修            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-27 11:03:42
                            
                                138阅读
                            
                                                                                    
                                1评论
                            
                                                 
                 
                
                                
                     
                                    
                             
         
            
            
            
             针对物体轮廓,opencv还提供了一些相关的函数,来处理轮廓查找,绘制,拟合,以及计算轮廓周长和面积等,详细介绍如下:1. 寻找和绘制轮廓  opencv的findContours()能寻找图片中的轮廓,实现的是下面论文的算法:Computer Vision, Graphics, and Image Processing, 30(1):32–46, 1985.  函数对应的参数如下:c            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-23 22:36:05
                            
                                248阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            引言:数字图像处理中,检测图像中的局部特征信息是比较重要的一部分,因为我们有时候并不是对整张图像都感兴趣,只是想要提取到图像中的一部分信息,比如车牌识别,对于整张图像来说,我们感兴趣的是只是车牌这一部分,其他的信息都是多余的。所以,有没有什么办法能够帮助我们实现提取局部信息的方法呢,opencv库中封装好了一些方法,我们只需要调用这些方法就可以实现我们的目的。我们还是先讲函数的意思,然后加以实践来            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-14 09:14:13
                            
                                137阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            17.OpenCV的图像轮廓——轮廓特征 文章目录前言一、轮廓的矩二、轮廓的面积三、轮廓的长度四、轮廓的近似多边形五、轮廓的凸包六、轮廓的直边界矩形七、轮廓的旋转矩形八、轮廓的最小外包圆九、轮廓的拟合椭圆十、轮廓的拟合直线十一、轮廓的最小外包三角形十二、OpenCV-Python资源下载总结 前言  图像轮廓是指由位于边缘、连续的、具有相同颜色和强度的点构成的曲线,它可以用于形状分析以及对象检测和            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-11 08:35:56
                            
                                177阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、话说轮廓关于轮廓,我们一定能想起前面的边缘检测,但直接进行边缘检测后会出现一个尴尬的情况:只计算出了边缘,但对机器来说不知道哪些是物体的轮廓,而很多时候我们确实肥肠希望能找出物体的轮廓。轮廓检测能较好的化解这一尴尬的情况。对于轮廓,官方指导中给出了这样的解释:“轮廓可以理解为图像中具有相同颜色或密度的位于边界的连续点的集合,轮廓是形状分析和对象识别的有利工具。”在OpenCV中,我们常用fin            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-18 14:43:30
                            
                                99阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            OpenCV中的轮廓1.初识轮廓1.1 原理1.2 常用函数2.轮廓的特征2.1 矩2.2 轮廓近似2.3 凸包2.4 边界2.5 拟合2.6 极点3. 形状匹配4. 轮廓的层次结构4.1 轮廓的层级结构4.2 轮廓的检索形式 1.初识轮廓1.1 原理轮廓可以简单认为成将连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度。使用二值化图像可以更准确识别轮廓。寻找轮廓之前要进行阈值化处理或C            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-09 16:35:08
                            
                                89阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            轮廓基本概念轮廓可以简单认为成将连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度,提取轮廓就是提取这些具有相同颜色或者灰度的曲线,或者说是连通域,轮廓在形状分析和物体的检测和识别中非常有用。注意事项①为了更加准确,要使用二值化图像。在寻找轮廓之前,要进行阈值化处理或者 Canny 边界检测  ②查找轮廓的函数会修改原始图像。如果你在找到轮廓之后还想使用原始图像的话,你应该将原始图像存储到            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-16 19:24:47
                            
                                271阅读
                            
                                                                             
                 
                
                                
                    