Learning Opencv 3 —— 十四章 轮廓匹配MomentsMoments 是一种轮廓、图像和点的高层次特征,计算方式如下其能够理解为对图像中每个像素点的加权和,如果 ,即 ,则每个像素点的权重都是 1。如果对于一幅二值图像(像素值不是 1 就是 0),那么  就是非零像素值的面积。如果一个轮廓,那么  就是轮廓的长度。同理,            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-05 23:15:46
                            
                                537阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            在计算机视觉领域,轮廓检测是图像处理中的一种重要技术。而在使用Python和OpenCV进行轮廓检测时,往往需要对图像进行对比度增强,以便准确提取出目标物体的边界。本文将从技术演进、性能指标、功能特性等多个维度,深入探讨如何在Python OpenCV中实现轮廓检测与对比度增强的结合。
### 背景定位
在许多实际应用场景中,如无人驾驶、机器视觉、医学影像等,轮廓检测用于识别和提取物体的形状和            
                
         
            
            
            
            /*
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阅读
                            
                                                                             
                 
                
                             
         
            
            
            
             一、什么是层次结构通常我们使用函数cv.findContours()在图片中查找一个对象。有时对象可能位于不同的位置。还有一些情况,一个形状在另外一个形状的内部。这种情况下我们称外部的形状为父,内部的形状为子。按照这种方式分类,一副图像中的所有轮廓之间就建立父子关系。  让我们来看一个简单的例子: 在这个图中,我给这几个形状编号为0-5,2和2a分别代表最            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-02 10:42:23
                            
                                106阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            文章目录一、寻找轮廓findContours()1.要层次hierarchy2.不要层次hierarchy3.轮廓就是点集二、绘制轮廓drawContours()三、寻找凸包四、使用多边形1.外部矩形边界boundingRect()2.寻找最小包围矩形minAreaRect()3.寻找最小包围圆形minEnclosingCircle()4.用椭圆拟合二维点集fitEllipse()5.逼近多边形            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-27 10:28:29
                            
                                974阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            目录一、轮廓的绘制的作用二、内容介绍三、代码实现一、轮廓的绘制的作用用于图形分析和处理:轮廓是图像中物体边界的描绘,通过绘制轮廓,我们可以更好地分析和理解图像中的物体和形状。例如,轮廓可用于识别和区分不同的对象、测量物体的面积和周长等。辅助机器视觉和物体识别:轮廓可以帮助计算机视觉系统(如机器人、自动驾驶车辆等)更好地识别和理解其环境。例如,通过轮廓,系统可以识别出不同的人、物体或道路标志。特征提            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-20 12:40:44
                            
                                30阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            轮廓特征目标查找轮廓的不同特征,例如面积,周长,重心,边界框等。你会学到很多轮廓相关函数矩   图像的矩可以帮助我们计算图像的质心,面积等。详细信息请查看维基百科Image Moments。   函数 cv2.moments() 会将计算得到的矩以一个字典的形式返回。如下:# -*- coding: utf-8 -*-
"""
Created on Sun Jan 12 18:30:17 2014            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-24 11:46:18
                            
                                26阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、OpenCV中的轮廓   
      图像的上半部分是一张白色背景上的测试图像,包含了一系列标记 A 到 E的区域。寻找到的轮廓被标记为 cX 或 hX, 其中c 代表 “轮廓(contour)”,h 代表 “孔(hole)”(也可以理解为内轮廓)。    同样,左图是原始图片,右图是寻找到的轮廓,它也采用了类似的标注方法。    二、函数调用细节  寻找轮廓的主要函数是 cv::            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-29 16:09:38
                            
                                308阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、概述  使用发现并绘制轮廓比较简单,只需要调用findContours和drawContours两个方法就行了,但前提是要对图像做一下预处理。  实现步骤如下:  1.将原图转换为灰度图像  2.执行二值分割  3.去除无用的噪声  4.发现轮廓  5.绘制轮廓  6.展示轮廓图二、示例代码  Mat src = imread(inputImagePath);
    imshow("原始图"            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-30 23:56:28
                            
                                421阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            OpenCV 轮廓基本特征      分类:          OpenCV(35)  
     一、概述       我们通过cvFindContours( )函数获取得图像轮廓有何作用呢?一般来说,我们对轮廓常用的操作有识别和处理,另外相关的还有多种对轮廓的处理,如简化或拟合轮廓,匹配轮廓到模板,等等。            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-29 16:06:59
                            
                                37阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            目标了解轮廓是什么。学习查找轮廓,绘制轮廓等。
cv2.findContours(),cv2.drawContours()
什么是轮廓?轮廓可以简单地解释为连接具有相同颜色或强度的所有连续点(沿边界)的曲线。轮廓是用于形状分析以及对象检测和识别的有用工具。为了获得更高的准确性,请使用灰度图像。因此,在找到轮廓之前,请应用阈值或canny边缘检测从OpenCV 3.2开始,cv2.findConto            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-19 18:51:03
                            
                                197阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一个半透明的水母. 注意轮廓处逐渐增加的不透明度。  本章介绍了表面法线向量的变换。本章假设读者熟悉章节“透明度”中讨论的alpha混合以及章节“世界空间中的着色器编写”中讨论的着色器属性。本章的目标就是为了达到以上照片中的效果:半透明物体的轮廓往往比物体的其余部分更不透明。这样增加了即使没有光照的三维形状的印象。事实证明,转换法线是获得这种效果的关键。光滑表面的轮廓在一小块表面上的表面法线向量(            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-30 16:59:31
                            
                                104阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            引言:数字图像处理中,检测图像中的局部特征信息是比较重要的一部分,因为我们有时候并不是对整张图像都感兴趣,只是想要提取到图像中的一部分信息,比如车牌识别,对于整张图像来说,我们感兴趣的是只是车牌这一部分,其他的信息都是多余的。所以,有没有什么办法能够帮助我们实现提取局部信息的方法呢,opencv库中封装好了一些方法,我们只需要调用这些方法就可以实现我们的目的。我们还是先讲函数的意思,然后加以实践来            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-14 09:14:13
                            
                                137阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            目标了解轮廓是什么。学习查找轮廓,绘制轮廓等。你将看到以下功能:cv.findContours(),cv.drawContours()什么是轮廓?   轮廓可以简单地解释为连接具有相同颜色或强度的所有连续点(沿边界)的曲线。轮廓是用于形状分析以及对象检测和识别的有用工具。 
  为了获得更高的准确性,请使用二进制图像。因此,在找到轮廓之前,请应用阈值或canny边缘检测。从OpenCV 3.2开始            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-13 15:28:06
                            
                                62阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            凸包基本概念凸包(Convex Hull)是一个计算机几何图形学中的概念, 简单来说, 给定二维平面点集, 凸包就是能够将最外层的点连接起来构成的凸多边形, 它能够包含点集中所有的点。物体的凸包检测场应用在物体识别、手势识别及边界检测等领域。寻找凸包—convexHull()函数原型points: 输入的二维点集, 可以填Mat类型或std::vectorhull: 函数调用后找到的凸包clock            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-31 12:21:18
                            
                                50阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
             针对物体轮廓,opencv还提供了一些相关的函数,来处理轮廓查找,绘制,拟合,以及计算轮廓周长和面积等,详细介绍如下:1. 寻找和绘制轮廓  opencv的findContours()能寻找图片中的轮廓,实现的是下面论文的算法:Computer Vision, Graphics, and Image Processing, 30(1):32–46, 1985.  函数对应的参数如下:c            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-23 22:36:05
                            
                                248阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            文章目录轮廓检测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评论
                            
                                                 
                 
                
                                
                     
                                    
                             
         
            
            
            
            目录1.cv2.boundingRect()2.cv2.minAreaRect()3. cv2.minEnclosingCircle()4.cv2.fitEllipse() 5.cv2.fitLine()  在计算轮廓时,可能并不需要实际的轮廓,而仅需要一个接近于轮廓的近似多边形。OpenCV提供了多种计算轮廓近似多边形的方法。1.cv2.boundingRect()能够返回包            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-15 14:23:38
                            
                                342阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            凸包(Convex Hull)是一个计算几何中常见的概念,简单来说,给定二维平面上的点集,凸包就是将最外层的点连接起来构成的凸多边形,它能包含点集中所有点,理解物体形状轮廓的一种比较有用的方法便是计算一个物体的凸包,然后计算其凸缺陷。很多复杂物体的性能能被这种缺陷表示出来 #一、寻找轮廓:findContours()函数 一个轮廓一般对应着一系列的点,也就是图像中的一条曲线,在OpenCV中,可以            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-09 10:40:33
                            
                                104阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1.概述在这篇文章中介绍如何使用findContours()函数寻找图像中物体的轮廓,在OpenCV中没有给出findCountours()函数的原理,如果想了解查找轮廓原理,可以翻**墙出去Google”Topological structural analysis of digitized binary images by border following”,这里就不一一翻译了.2.APIop            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-03 10:11:58
                            
                                58阅读
                            
                                                                             
                 
                
                                
                    