精华内容
下载资源
问答
  • openCV检测周长源码

    2013-09-12 21:56:30
    openCV检测周长源码,打包发布,保证运行
  • opencv周长的方法

    2012-10-19 13:26:06
    opencv周长,代码,例子,思路清晰。
  • OpenCV python 轮廓周长筛选

    千次阅读 2020-01-07 10:35:33
    OpenCV python 轮廓周长筛选 处理图片[source.jpg] import cv2 import numpy as np def main(): # 1.导入图片 img_src = cv2.imread("source.jpg") # 2.灰度化与二值化 img_gray = cv2.cvtColor(img_src, cv...

    OpenCV python 轮廓周长筛选

    处理图片[source.jpg]
    在这里插入图片描述

    import cv2
    import numpy as np
    
    
    def main():
        # 1.导入图片
        img_src = cv2.imread("source.jpg")
    
        # 2.灰度化与二值化
        img_gray = cv2.cvtColor(img_src, cv2.COLOR_BGR2GRAY)
        ret, img_bin = cv2.threshold(img_gray, 127, 255, cv2.THRESH_BINARY)
    
        # 3.连通域分析
        img_contour, contours, hierarchy = cv2.findContours(img_bin, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
    
        # 4.计算平均周长
        lengths = list()
        for i in range(len(contours)):
    
            length = cv2.arcLength(contours[i], True)
            lengths.append(length)
            print("轮廓%d 的周长: %d" % (i, length))
    
        length_avg = np.average(lengths)
        print("轮廓平均周长:", length_avg)
    
        # 5.筛选超过平均周长的轮廓
        img_contours = []
        for i in range(len(contours)):
            img_temp = np.zeros(img_src.shape, np.uint8)
            img_contours.append(img_temp)
    
            length = cv2.arcLength(contours[i], True)
            if length > length_avg:
                print("轮廓 %d 的周长是:%d" % (i, length))
                cv2.drawContours(img_contours[i], contours, i, (255, 255, 255), -1)
                cv2.imshow("轮廓 %d" % i, img_contours[i])
    
        # 6.显示结果
        cv2.imshow("img_src", img_src)
        cv2.waitKey()
        cv2.destroyAllWindows()
    
    
    if __name__ == '__main__':
        main()
    
    

    结果图片:[contour1.jpg]
    在这里插入图片描述
    结果图片:[contour3.jpg]
    在这里插入图片描述
    运行结果:
    在这里插入图片描述

    展开全文
  • OpenCV里实现周长、面积计算

    千次阅读 2019-10-08 18:07:07
    在前面实现了一些轮廓的查找,接着下来要根据周长和面积对一些轮廓进行处理。比如怎么样识别轮廓是一个三角形组成呢?显然就可看它是否有三条边组成的。如果一堆三角形里,还要找一个最大面积的三角形呢?这时就需要...

    在前面实现了一些轮廓的查找,接着下来要根据周长和面积对一些轮廓进行处理。比如怎么样识别轮廓是一个三角形组成呢?显然就可看它是否有三条边组成的。如果一堆三角形里,还要找一个最大面积的三角形呢?这时就需要使用OpenCV的函数:arcLength、contourArea、approxPolyDP,相关的函数定义如下:

    参数详解

     

    (1) 第一个参数,InputArray curve,一般是由图像的轮廓点组成的点集;

     

    (2) 第二个参数,bool closed,表示输出的多边形是否封闭;true表示封闭,false表示不封闭;

    这个函数用来计算周长。

     

    展开全文
  • OpenCV计算二值图像周长面积

    千次阅读 2014-06-07 17:41:13
    OpenCV计算二值图像周长面积
    ContourArea
    计算整个轮廓或部分轮廓的面积 

    double cvContourArea( const CvArr* contour, CvSlice slice=CV_WHOLE_SEQ );
    contour 
    轮廓 (定点的序列或数组). 
    slice 
    感兴趣轮廓部分的起始点,缺省是计算整个轮廓的面积。 
    函数 cvContourArea 计算整个轮廓或部分轮廓的面积。 对后面的情况,面积表示轮廓部分和起始点连线构成的封闭部分的面积。 

    NOTE: 轮廓的方向影响面积的符号。因此函数也许会返回负的结果。应用函数 fabs() 得到面积的绝对值。 

    ArcLength
    计算轮廓周长或曲线长度 

    double cvArcLength( const void* curve, CvSlice slice=CV_WHOLE_SEQ, int is_closed=-1 );
    curve 
    曲线点集序列或数组 
    slice 
    曲线的起始点,缺省是计算整个曲线的长度 
    is_closed 
    表示曲线是否闭合,有三种情况: 
    is_closed=0 假设曲线不闭合 
    is_closed>0 假设曲线闭合 
    is_closed<0 若曲线是序列,检查 ((CvSeq*)curve)->flags 中的标识 CV_SEQ_FLAG_CLOSED 来确定曲线是否闭合。否则 (曲线由点集的数组 (CvMat*) 表示) 假设曲线不闭合。 
    函数 cvArcLength 通过依次计算序列点之间的线段长度,并求和来得到曲线的长度
    展开全文
  • 照片是来自太空望远镜的星云图像,科学家想知道它的面积和周长 方法步骤 图像二值化 形态学操作 轮廓查找 计算参数 代码 #include <opencv2/opencv.hpp> #include <opencv2/xfeatures2d.hpp> #...

    案例背景

    照片是来自太空望远镜的星云图像,科学家想知道它的面积和周长


    方法步骤

    • 图像二值化
    • 形态学操作
    • 轮廓查找
    • 计算参数

    代码

    #include <opencv2/opencv.hpp>
    #include <opencv2/xfeatures2d.hpp>
    #include <iostream>
    #include <math.h>
    
    using namespace std;
    using namespace cv;
    
    #define PIC_PATH "/work/opencv_pic/"
    #define PIC_NAME "case5.png"
    
    int main(void)
    {
        Mat src,gray_src;
    
        //获取完整的图片路径及名称
        string pic = string(PIC_PATH)+string(PIC_NAME);
    
        //打印图片路径
        cout << "pic path is :"<<pic<<endl;
    
        //读取图片
        src = imread(pic);
    
        //判断图片是否存在
        if(src.empty())
        {
            cout<<"pic is not exist!!!!"<<endl;
            return -1;
        }
    
        //显示图片
        namedWindow("src pic",WINDOW_AUTOSIZE);
        imshow("src pic",src);
    
        //图片转换为灰度 直接二值化 图片主体存在许多噪点不连续 直接使用开闭操作消除 容易把主体褶皱部分拟合掉
        //测量误差比较大 这里采用高斯模糊解决噪点问题
        cvtColor(src,gray_src,COLOR_BGR2GRAY);
        GaussianBlur(gray_src,gray_src,Size(15,15),0,0);
        imshow("GaussianBlur",gray_src);
    
    
        //图片与背景有巨大的反差 先将图片二值化 方便提取主体部分
        //二值化宏采用THRESH_TRIANGLE,未采用THRESH_OTSU是因为THRESH_OTSU效果不理想 噪点较多
        //图片背景色占比较多 直方图属于单峰 采用THRESH_TRIANGLE 效果比较好
        Mat binaryimg;
        threshold(gray_src,binaryimg,0,255,THRESH_BINARY | THRESH_TRIANGLE);
        imshow("binaryimg",binaryimg);
    
        //轮廓
        vector<vector<Point>> contours;
        findContours(binaryimg,contours,RETR_TREE,CHAIN_APPROX_SIMPLE);
    
        Mat contouimg = Mat::zeros(src.size(),src.type());
        for(size_t i=0;i<contours.size();i++)
        {
            //绘制最大的轮廓
            Rect rect = boundingRect(contours[i]);
            if(rect.width>src.cols/2 && rect.height >src.rows/2)
            {
                drawContours(contouimg,contours,i,Scalar(0,0,255),1);
                double length = arcLength(contours[i],true);
                double area = contourArea(contours[i]);
                cout << "长度是 "<< length <<endl;
                cout << "面积是 "<< area<<endl;
            }
        }
        imshow("contouimg",contouimg);
    
        waitKey(0);
        destroyAllWindows();
        return 0;
    }
    

    效果演示

    在这里插入图片描述

    展开全文
  • opencv计算图像的周长和面积

    千次阅读 2019-04-26 19:23:35
    opencv2/opencv.hpp> #include<iostream> #include<math.h> using namespace cv; using namespace std; Mat src; int main(int argc, char** argv) { src = imread("1.jpg"); if (sr...
  • OpenCV-计算轮廓周长cv::arcLength

    万次阅读 多人点赞 2021-04-29 08:57:00
    图2 周长结果图 注意:计算轮廓的周长值是按照轮廓的实际长度进行计算的,按第三个轮廓举例,将其放大至像素级别,如图3所示。 图3 轮廓示意图 寻找轮廓时,取的点为像素中心点,连接起来的黑线就是这个图形的...
  • 本文将介绍OpenCV计算物体最小包围矩形面积和周长 两个函数:contourArea()和arcLength 知识点: 1.寻找最小包围矩形 2.计算最小轮廓的面积和长度 3.定义和输出vector容器点坐标 代码示例: //寻找最小包围...
  • 轮廓面积与周长 轮廓面积和轮廓周长都是轮廓的重要统计特征。轮廓面积是指每个轮廓中所有像素点围成区域的面积,单位为像素。轮廓周长是指每个轮廓中所有像素点围成区域的周长,单位同样为像素。通过分析轮廓面积和...
  • OpenCV实践:计算轮廓的面积和周长

    千次阅读 2020-01-02 15:04:14
    1、对如下图片的面积与周长进行测量 2、算法思路 灰度处理 模糊处理 ...opencv2\opencv.hpp> # include <iostream> using namespace std; using namespace cv; int main(int argc...
  • 一、周长和面积检测 import cv2 import numpy as np img = cv2.imread("test1.png") img = img.astype(np.uint8) gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) ret, binary = cv2.threshold(gray,127,255,cv...
  • #python 3.7.4,opencv4.1 # https://www.freesion.com/article/6289910425/ #蔡军生 https://blog.csdn.net/caimouse/article/details/51749579 # import cv2 import numpy as np from scipy import signal import ...
  • 关键字:VS2015、Opencv、形状、周长、面积、轮廓提取 在很多时候我们需要对一些形状进行识别,其中包括对形状的区分、对图像的提取、对面积和周长的计算等等,这时我们可以利用opencv进行运用从而实现目的。 本篇...
  • VS2008 opencv MFC 计算米粒的个数及最大米粒的面积及周长 有个问题 , 因为 const char * 和 LPCTSTR 的转换,还是不是很清楚,只生成了debug 版本,Release 不通过。 debug版本中只要 如何将LPCTSTR转换为const ...
  • // #include "opencv2/opencv.hpp" #include using namespace std; using namespace cv; int main() { Mat im = imread("rice.jfif"); resize(im, im, Size(0, 0), 0.5, 0.5); Mat gray; cvtColor(im, gray, CV_BGR...
  • 需求:以上图像是太空望远镜的星云图像,要求通过opencv计算出星云的面积与周长。 解决思路:通过二值分割+图像形态学+轮廓提取。 代码如下 #include #include #include using namespace cv; using namespace...
  • 需求: 计算图片中的细胞的周长和面积 思路: 通过二值分割+图像形态学+轮廓提取 代码: #include <opencv2/opencv.hpp> #include <iostream> #include <math.h> using namespace cv; using ...
  • OpenCV

    2019-08-14 15:07:00
    OpencvForUnity 插件的文档 :https://enoxsoftware.github.io/OpenCVForUnity/3.0.0/doc/html/annotated.html OpenCVSharp : https://github.com/shimat/opencvsharp OpenCVSharp 文档:...
  • #计算轮廓的周长 perimeter = cv2.arcLength(cnt, True ) #轮廓的近似 epsilon = 0.02 *perimeter approx = cv2.approxPolyDP(cnt,epsilon, True ) imgnew1 = cv2.drawContours(img, approx, - 1 , ( 0 , 0 , ...
  • 多边形轮廓逼近过程中,查找轮廓上到线段距离最远...从这里可以看出,精度和轮廓的周长,或者外包矩形周长的几分之几比较合适。函数作用于一个轮廓并返回其长度。事实上,这个函数是一个调用通用函数cvArcLength的宏。
  • 如面积,周长,质心,边界框等 *弧长与面积测量 *多边形拟合 *获取轮廓的多边形拟合结果 2、python-opencv API提供方法: cv2.moments() 用来计算图像中的中心矩(最高到三阶), cv2.HuMoments() 用于由中心矩计算Hu...
  • 我想提取并且测量中间陨石的面积与周长。 解决方法: 1、模糊; 2、二值化; 3、形态学操作; 4、轮廓发现+面积周长计算。 1)高斯模糊 因为陨石周围有许多小块的陨石,我们可以把它们当做噪点,可使用高斯...
  • 因之前的代码很多多余,学习的时候刚写的,现于2018/8/6更新: ...// OpenCV版本: 3.4 #include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc.hpp" #include ...
  • opencv2,找轮廓,用周长筛选

    千次阅读 2016-12-23 14:07:47
    //周长的上下限 std::vector<std::vector<Point>>::const_iterator itc=contours.begin(); while (itc!=contours.end()) { if (itc->size()||itc->size()>cmax) { itc=contours.erase(itc); }...
  • C++ Opencv计算图像中物体的周长、面积

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,933
精华内容 773
关键字:

opencv周长