opencv

您所在的位置:网站首页 opencv轮廓提取点 opencv

opencv

#opencv| 来源: 网络整理| 查看: 265

一、腐蚀(Erode)

  取符合模板的点, 用区域最小值代替中心位置值(锚点)

  作用: 平滑对象边缘、弱化对象之间的连接。

opencv 中相关函数:(erode) 1 // C++ 2 /** 3 shape: 形状 4 MORPH_RECT 矩形 5 MORPH_CROSS 交叉形 十字型 6 MORPH_ELLIPSE 椭圆形 7 esize : 大小 8 anchor: 锚点,默认为中心 9 **/ 10 Mat getStructuringElement(int shape, Size esize, Point anchor = Point(-1, -1)); 11 12 /** 13 src: input Mat 14 dst: output Mat 15 element : kernel element 16 完整参数:https://docs.opencv.org/4.1.0/d4/d86/group__imgproc__filter.html#gaeb1e0c1033e3f6b891a25d0511362aeb 17 **/ 18 erode(const Mat& src, Mat&dst , const Mat& element) // 基本参数 1 # python 2 # dst = cv.erode( src, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]] ) 3 4 import cv2 as cv 5 import numpy as np 6 7 im = cv.imread("test.jpg") 8 gray = cv.cvtColor(im,cv.COLOR_BGR2GRAY) 9 ret,binary = cv.threshold(gray,0,255,cv.THRESH_BINARY_INV|cv.THRESH_OTSU) 10 11 # 获取 kerenl element 12 kernel = cv.getStructuringElement(cv.MORPH_RECT,(5,5)) 13 # 腐蚀 14 dst = cv.erode(binary,kernel) View Code 二、 膨胀(Dilate)

  实现: 使用kernel 划过图像,将区域的最大值赋给锚点位置。

  作用: 致使图像的亮区扩展,能起到平滑边缘的作用。

// C++ /** src: input Mat dst: output Mat kernel : kernel element 完整参数:https://docs.opencv.org/master/d4/d86/group__imgproc__filter.html#ga4ff0f3318642c4f469d0e11f242f3b6c **/#include void dilate(InputArray src, OutputArray dst , InputArray kernel) // 基本参数 三、边缘检测

边缘检测一般步骤:

  平滑去噪

          对比度增强

          计算梯度

          过滤判断边缘

1、Canny 边缘检测 1 // C++ 2 #include 3 4 /** 5 image : 输入图像 6 edges : 输出图像 7 threshold1: 阈值1,高于该值 被认为时边缘 8 threshold2: 阈值2, 低于该值可认为不是边缘 9 若在两值之间,该像素仅连接一个高阈值的像素时被保留。 10 apertureSize : kernel 大小,默认3 sobel kernel ,;取值 1 3 5 7 (奇数,


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3